在ScrollView中使用ListView,ListView的高度会不正常。android
方式一:在XML中写死 ide
android:layout_width="match_parent"
android:layout_height="120dp"
方式二:代码中设置固定高度(若是在运行过程当中才能决定ListView高度)this
public void setHeight(int height){ LayoutParams params = this.listview.getLayoutParams(); params.width = LayoutParams.FILL_PARENT; params.height = height; listview.setLayoutParams(layoutParams); }
方式三:代码中动态设置高度(让ListView高度最大 显示彻底全部数据)spa
public void setHeight(){ int height = 0; int count = adapter.getCount(); for(int i=0;i<count;i++){ View temp = adapter.getView(i,null,listview); temp.measure(0,0); height += temp.getMeasuredHeight(); } LayoutParams params = this.listview.getLayoutParams(); params.width = LayoutParams.FILL_PARENT; params.height = height; listview.setLayoutParams(layoutParams); }
前提1:ListView 显示所有内容(假如4条数据 我显示满4条)code
上述方式三让ListView高度最大,显示彻底数据,滑动时就只会响应ScrollView滑动事件blog
此时ListView不能滑动,也不必滑动,由于已经显示彻底数据。事件
前提1:ListView 不想显示所有内容(假如100条数据 我只显示10条 滑动查看其他)get
使用上述方式一或二,ListView没有显示彻底数据io
可是想焦点在ListView时滑动ListView,焦点在ScrollView时滑动ScrollViewclass
给ListView加上监听OnTouchListener
listView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
scrollView.requestDisallowInterceptTouchEvent(true);
return false; } });