ListView解决嵌套冲突3种办法
来源:互联网 发布:淘宝卖假货举报中心 编辑:程序博客网 时间:2024/06/05 22:52
注:listview子项item中注意强抢焦点问题:
如果item子项是一个控件,设置控件的一个属性 android:focusable="false",
如果是布局的话,就在跟布局设置 android:descendantFocusability="blocksDescendants"
当时我自己的item中存在Button 我在其属性加入android:clickable="false",android:focusable="false", android:focusableInTouchMode="false"
三条属性
方法一:
在listview添加头部 ,这是最好的解决办法 数据加载量大的时候可以防止内存泄漏
onCreateView()方法里加载头部布局
head_listview布局是自己加入的布局
View v=inflater.inflate(R.layout.head_listview, null);listv_dh_activitis.addHeaderView(v);主布局只需要加入
<ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView>
方法二:
自定义ListView,重写onMeasure()方法写上下面的代码
@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }
方法三: 需要计算listview每个item的高
public static void setListViewHeight(ListView listviewli) {// 获得ListView的适配器ListAdapter adapter = listviewli.getAdapter();if (adapter == null)return;int height = 0;for (int i = 0; i < adapter.getCount(); i++) {// 单个ItemView listViewItem = adapter.getView(i, null, listviewli);// 计算宽高listViewItem.measure(0, 0);// 叠加没一个子项的宽高height += listViewItem.getMeasuredHeight();}// 设置高度ViewGroup.LayoutParams params = listviewli.getLayoutParams();// Item的高度加上分割线的高度的和乘以总个数params.height = height + ((listviewli.getDividerHeight()) * (adapter.getCount() - 1));listviewli.setLayoutParams(params);}然后用listview方法调用即可
0 0
- ListView解决嵌套冲突3种办法
- ListView解决嵌套冲突
- SwipeRefreshLayout嵌套Listview冲突解决
- 解决scrollView嵌套listview 冲突
- scrollview嵌套listView冲突解决
- 关于解决多个listView嵌套到scrollview中滑动冲突的办法
- 解决ScrollView嵌套ListView的冲突
- 解决scrollView嵌套listview的冲突问题
- ScrollView嵌套ListView冲突的解决
- ListView、GridView与ScrollView嵌套冲突解决
- 解决ScrollView 里面嵌套Listview 的冲突
- Listview 嵌套 Viewpager 滑动冲突的解决
- Android Listview嵌套viewpager 滑动冲突解决
- ScrollView嵌套ListView滑动冲突解决
- 解决ScrollView嵌套ListView滑动冲突
- Scrollview嵌套listview解决滑动冲突
- swipRefreshLayout嵌套listview的冲突解决
- ListView嵌套webView滑动冲突的解决
- React Native跨平台代码说明
- 简单动画
- Android Studio中如何使用Git和Github来管理项目
- ListView滚动方向和滚动位置的探索
- 【Linux入门学习之】vi/vim编辑器必知必会
- ListView解决嵌套冲突3种办法
- ExecutorService——shutdown方法和awaitTermination方法
- Uinty利用XML来本地保存场景中的数据
- 只知编程
- AndroidStudio的一些实用技巧
- 【SHELL】一个非常有趣的问题
- MySql表结构修改详解
- 安卓 支付 问题
- 史上最详细的vsftpd配置文件讲解