Android 自定义listview适配ScrollView 自动计算高度
来源:互联网 发布:mac菜单栏添加图标 编辑:程序博客网 时间:2024/06/06 19:29
public class MyListView extends LinearLayout { private BaseAdapter adapter; private MyOnItemClickListener onItemClickListener; boolean footerViewAttached = false; private View footerview; /** * 通知更新listview */ public void notifyChange() { int count = getChildCount(); if (footerViewAttached) { count--; } LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); for (int i = count; i < adapter.getCount(); i++) { final int index = i; final LinearLayout layout = new LinearLayout(getContext()); layout.setLayoutParams(params); layout.setOrientation(VERTICAL); View v = adapter.getView(i, null, null); v.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (onItemClickListener != null) { onItemClickListener.onItemClick(MyListView.this, layout, index, adapter.getItem(index)); } } }); ImageView imageView = new ImageView(getContext()); imageView.setLayoutParams(params); layout.addView(v); layout.addView(imageView); addView(layout, index); } } public MyListView(Context context) { super(context); initAttr(null); } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); initAttr(attrs); } public void initAttr(AttributeSet attrs) { setOrientation(VERTICAL); } /** * 初始化footerview * * @param footerView */ public void initFooterView(final View footerView) { this.footerview = footerView; } /** * 设置footerView监听事件 * * @param onClickListener */ public void setFooterViewListener(OnClickListener onClickListener) { this.footerview.setOnClickListener(onClickListener); } public BaseAdapter getAdapter() { return adapter; } /** * 设置adapter并模拟listview添加????数据 * * @param adpater */ public void setAdapter(BaseAdapter adpater) { this.adapter = adpater; removeAllViews(); if (footerViewAttached) addView(footerview); notifyChange(); } /** * 设置条目监听事件 * * @param onClickListener */ public void setOnItemClickListener(MyOnItemClickListener onClickListener) { this.onItemClickListener = onClickListener; } /** * 没有下一页了 */ public void noMorePages() { if (footerview != null && footerViewAttached) { removeView(footerview); footerViewAttached = false; } } /** * 可能还有下一?? */ public void mayHaveMorePages() { if (!footerViewAttached && footerview != null) { addView(footerview); footerViewAttached = true; } } public static interface MyOnItemClickListener { public void onItemClick(ViewGroup parent, View view, int position, Object o); }}
如果需要listview的分割线自己在item布局里直接弄好就可以了
listview的刷新要用
myListView.notifyChange();
而不是
adapter.notifyDataSetChanged();
item点击监听
myListView.setOnItemClickListener(new MyListView.MyOnItemClickListener() { @Override public void onItemClick(ViewGroup parent, View view, int position, Object o) { } });
基本功能还是和listview类似的
0 0
- Android 自定义listview适配ScrollView 自动计算高度
- android自动计算高度的listview 嵌套在ScrollView中使用
- android ScrollView 里嵌套listview listview 重新计算高度
- ScrollView嵌套ListView高度计算
- android scrollview嵌套listview计算高度的问题
- Android中动态计算ListView高度方法(适用于ScrollView嵌套)
- android scrollview 嵌套listview 或者listview嵌套listview 计算子view高度
- android 计算ListView 高度
- Android ScrollView中嵌套ListView,ListView根据内容自动调整高度
- android解决listview与scrollview的冲突、自定义listview的高度以及上下拉刷新
- scrollview中嵌入listview动态计算listview的高度
- 计算Listview的高度解决Scrollview和listview的冲突
- ScrollView与ListView并用时正确计算Listview的高度
- 浅谈ScrollView嵌套ListView及ListView嵌套的高度计算
- ScrollView嵌套listview,并计算listview的高度
- android ListView 嵌套scrollView 自适应高度
- android scrollview嵌套listview,高度异常问题解决
- android 计算listview的高度
- 如何配置eclipse-maven, 使其可以下载jar包的源码和javadoc
- IPL,openCV,IPP,visDSK与Matlab
- c++ 11 不兼容问题
- arm裸机学习告一段落
- Java并发编程:Callable、Future和FutureTask
- Android 自定义listview适配ScrollView 自动计算高度
- 小计64位win7上R读取excel过程
- Openwrt
- Json 时间格式化
- java装饰者模式decorater
- 安卓自定义控件,自定义控件属性
- android 6.0 中 系统日期时间的获取
- HLS,HTTP,RTSP,RTMP协议的区别:
- Matlab与线性代数 -- 线性间隔向量