描述问题:在NestedScrollView或者ScrollView里面,如果直接使用Listview 的话,会出现这种情况,就是listview只显示一个item,无论Listview里面的数据有多少。

 

解决方法:创建MyListView继承ListView,然后重新onMeasure方法,这样子就可以解决Listview只显示一条数据的情况。如下

public class MyListView extends ListView {

public MyListView(Context context) {

super(context);

}

 

public MyListView(Context context, AttributeSet attrs) {

super(context, attrs);

}

 

public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

 

/**

* 这个是用来避免listview只能显示一条数据的

* @param widthMeasureSpec

* @param heightMeasureSpec

*/

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);

super.onMeasure(widthMeasureSpec, expandSpec);

}

 

}

相关展开的图片:

ScrollView或NestedScrollView里面的listview设置

 

收缩的图片:

ScrollView或NestedScrollView里面的listview设置

相关文章:

  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
  • 2021-12-05
  • 2021-08-14
猜你喜欢
  • 2021-12-05
  • 2022-02-11
  • 2021-07-20
  • 2021-06-21
  • 2021-12-05
  • 2022-02-19
  • 2022-12-23
相关资源
相似解决方案