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、gridview嵌套高度冲突解决办法(优化版)

本文转载自:http://www.eoeandroid.com/thread-332394-1-7.html网上说了2种办法:一种是重写listview和gridview。不过这个方法有个问题,如果你...

关于ListView中使用GestureDetector冲突的解决办法

因为实在写的太好,所以转载过来: 关于ListView中使用GestureDetector冲突的解决办法 关于ListView中使用GestureDetector冲突的解决办法 在做OnGe...

Android Listview中Button按钮点击事件冲突解决办法

Android Listview中Button按钮点击事件冲突解决办法

ScrollView与ListView,GridView共存冲突解决办法 Android

ScrollView与ListView,GridView 共存冲突的解决办法  http://www.2cto.com/kf/201210/159540.html 我们在真实项目中通常会遇到L...

Android Listview中Button按钮点击事件冲突解决办法

今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来。 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录...

ScrollView+ListView滚动冲突,没有滑动效果 解决办法

问题背景 今天做个界面需要在整个布局都要滚动的基础上添加一个ListView元素,整个布局滚动当然用ScrollView。但是在ScrollView+ListView的布局画好后,发现整个界面都无法滚...

ViewDragHelper做侧滑时与ListView的上下拉刷新冲突的解决办法

ViewDragHelper做仿QQ侧滑菜单的主流实例对象,可以节省很多代码量,做出来的侧滑效果流畅等等诸多优点,但是它并不完美,面对Android app多种多样的需求,它的缺点也是很多。比如类似题...

Android中SwipeRefreshLayout和listview的冲突解决办法

SwipeRefreshLayout和listview的冲突解决办法        在google放出了SwipeRefreshLayout之后,就再也不用辛辛苦苦的用上百行代码来实现下拉刷新了(...

解决ListView中使用EditText所遇到的一些冲突解决办法

在说解决办法之前,我们先来说下ListView缓存加载的事,在android中大量使用了MVC模式,ListVIew是其中的典型,其中xml中的ListView控件代表了View,项目中的实体类代表了...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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