1.使用网上用的动态改变listview高度的方法,该方法只适用于item布局是LinearLayout布局的情况,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常。所以使用限制较大//嵌套显示1行解决public void setListViewHeightBasedOnChildren(ListView listViewHeightBasedOnChildren) {ListAdapter listAdapter = listViewHeightBasedOnChildren.getAdapter();if (listAdapter == null) {return;}int totalHeight = 0;for (int i = 0; i < listAdapter.getCount(); i++) {View listItem = listAdapter.getView(i, null, listViewHeightBasedOnChildren);listItem.measure(0, 0);totalHeight += listItem.getMeasuredHeight();}
ViewGroup.LayoutParams params = listViewHeightBasedOnChildren.getLayoutParams();params.height = totalHeight+ (listViewHeightBasedOnChildren.getDividerHeight() * (listAdapter.getCount() - 1));listViewHeightBasedOnChildren.setLayoutParams(params);}2.网上有帖子说在ScrollView中添加一属性 android:fillViewport="true" ,这样就可以让ListView全屏显示了。在我机器上测试失败了。3.重写ListViewpublic class MyListView extends ListView {public MyListView(Context context) {// TODO Auto-generated method stubsuper(context);}public MyListView(Context context, AttributeSet attrs) {// TODO Auto-generated method stubsuper(context, attrs);}public MyListView(Context context, AttributeSet attrs, int defStyle) {// TODO Auto-generated method stubsuper(context, attrs, defStyle);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {// TODO Auto-generated method stubint expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);}}重写GridViewpublic class MyGridView extends GridView{public MyGridView(Context context, AttributeSet attrs) {super(context, attrs);}public MyGridView(Context context) {super(context);}public MyGridView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}@Overridepublic void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);}}
解决ScrollView下嵌套ListView、GridView显示不全的问题
最新推荐文章于 2020-05-21 11:17:51 发布