listview可以添加两个头部布局吗

listview可以添加两个头部布局吗,第1张

第一个头布局我 设置了一下 位置,目的是为了证明,在自定义下拉刷新时,当listview已经添加了一个headerview时候,可以继续添加一个headerview,不影响下拉刷新

代码如下:

MainActivity

package com.ss.hsx

import android.app.Activity

import android.os.Bundle

import android.widget.ArrayAdapter

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.main)

MyListView listView = (MyListView) findViewById(R.id.listView)

String[] data = new String[] { "第一个", "第二个", "第三个" }

ArrayAdapter<String>adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data)

listView.setAdapter(adapter)

}

}

MyListView

package com.ss.hsx

import android.content.Context

import android.util.AttributeSet

import android.view.LayoutInflater

import android.view.View

import android.widget.ListView

public class MyListView extends ListView {

View one

public MyListView(Context context) {

super(context)

initHeaderView(context)

}

public MyListView(Context context, AttributeSet attrs) {

super(context, attrs)

initHeaderView(context)

}

public MyListView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle)

initHeaderView(context)

}

private void initHeaderView(Context context) {

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)

one = inflater.inflate(R.layout.one, null)

View two = inflater.inflate(R.layout.two, null)

addHeaderView(one)

addHeaderView(two)

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec)

//控制第一个头部布局的位置

one.setPadding(0, -1 * one.getHeight()/2, 0, 0)

}

}

RecyclerView作为ListView的替代者有着较好的性能提升,但是有些ListVIew的常用功能却没有提供比如addHeaderView,addFooterView; 作为替代方案,可以通过自定义的Adapter来实现addHeaderView,addFooterView功能,代码如下: public class Hea...

你想放几个就放几个,这个事没有问题的。

首先:

你在布局文件里面添加两个listview,你可以用layout_weight 这个属性进行控制,比如都给1,然后水平和数值都是fillparent的那么这两个listview就是上下两个

其次:你在activity里面进行实例化这两个listview对象。然后同时设置统一个监听器,因为每个View 都有一个getId()方法,所以可以使用这个方法得到view的id,通过switch进行判断是哪个view,然后做出不同相应!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11625775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存