ListView解决嵌套冲突3种办法

原创 2016年06月02日 10:22:12

注: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()方法写上下面的代码

	@Override
	protected 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++) {
			// 单个Item
			View 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方法调用即可



利用事件分发机制解决ScrollView嵌套ListView滑动冲突

记得以前面试的时候,面试官问了ScrollView嵌套ListView使用的问题。那么ScrollView嵌套ListView使用会出现什么效果呢? 如布局文件如下: ...
  • Mr_wzc
  • Mr_wzc
  • 2016年06月28日 21:17
  • 4396

完美解决Android中,ScrollView嵌套ListView的冲突。

完美解决Android中,ScrollView和ListView的各种冲突
  • wodelinglong
  • wodelinglong
  • 2013年10月25日 16:15
  • 5886

ScrollView嵌套ListView——解决滑动冲突问题

//布局中的代码实现 一个简单的布局设置 演义滑动冲突
  • Mannver
  • Mannver
  • 2016年04月12日 20:49
  • 11017

解决ScrollView中嵌套ListView滚动效果冲突问题

在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据。起初我以为是样式的问题,一直在对XML文件的样式进行尝试性设置,但始终得不到想要的效果。后来在网上查了查,S...
  • wulianghuan
  • wulianghuan
  • 2013年03月01日 23:32
  • 43343

Android中解决ListView嵌套Viewpager时,滑动事件冲突的方法

1.解决思路             当我们使用ListView嵌套ViewPager时,会出现滑动事件的冲突,我们都知道,Viewpager自己也有滑动的功能,ListView也有滑动的功能,当我...
  • yanxiaosa
  • yanxiaosa
  • 2016年09月20日 13:46
  • 1785

ScrollView与Listview嵌套使用时的滑动冲突问题

滑动冲突解决方案在我们的布局中有可能使用Scrollview嵌套Listview的情况,这时候如果不加任何的处理,就会发生滑动冲突问题,即Listview没有完全显示,也不能滑动,触摸事件被Scrol...
  • mXianLin
  • mXianLin
  • 2016年07月29日 09:46
  • 1233

Android ScrollView中嵌套ListView,滑动冲突问题的解决

在项目开发过程,遇到ScrollView中嵌套ListView,结果点击ListView上下滑动时,整个页面滑动,也就是滑动事件被ScrollView消费掉了,造成listView无法滑动的结果,然后...
  • androidforwell
  • androidforwell
  • 2016年09月22日 13:01
  • 3014

关于ListView嵌套ListView,外层Item点击事件的冲突解决

最近碰到ListView嵌套ListView,最外层的ListView的OnItemClickListener在点击里层ListView的item的时候不响应,在网上查到诸多资料,大部分说在子List...
  • XiaoRouniao
  • XiaoRouniao
  • 2017年06月17日 11:28
  • 418

【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题

在一个滑动控件或者是布局里面,添加另外一个可以滑动的控件,通常会造成一些莫名其妙的问题。今天主要介绍在工作中遇到的,在ScrollView布局中嵌套Listview显示不正常,和在Listview中嵌...
  • bz419927089
  • bz419927089
  • 2014年08月15日 15:38
  • 13755

完美解决ScrollView嵌套ListView滑动冲突(有图有真相)

(转载请保留原文地址  csdn yang http://blog.csdn.net/lys701/article/details/8755373) 最近在android开发中,需要在ScrollV...
  • lys701
  • lys701
  • 2013年04月03日 13:39
  • 6296
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ListView解决嵌套冲突3种办法
举报原因:
原因补充:

(最多只允许输入30个字)