问:我目前正在开发一个android应用程序,它在main活动中具有列表视图。我想要的是禁用列表滚动并仅允许整个页面滚动,是否有任何方法可以帮助您……..我尝试了以下方法,但抛出了“ java.lang.NullPointerException:我正在使用在Android Studio IDE中
我使用的方法1 ::
ViewGroup.LayoutParams listViewParams =(ViewGroup.LayoutParams)listView.getLayoutParams();
listViewParams.height = 400 +(listView.getDividerHeight()*(listView.getCount()-1));
int height = 0;
for(int i = 0; i <listView.getChildCount(); i ++){
高度+ = listView.getChildAt(i).getMeasuredHeight();
高度+ = listView.getDividerHeight();
}
Log.w(“ Height”,“” + listView.getHeight()+ height);
listViewParams.height = listView.getHeight()+高度;
listView.requestLayout();
异常处理:
ava.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'int android.view.View.getImportantForAccessibility()'
我使用的方法2:
ListAdapter myListAdapter = myListView.getAdapter(); if(myListAdapter == null){//不执行返回null返回;
}
//在循环中设置listAdapter以获取最终的大小int totalHeight = 0;
for(int size = 0; size <myListAdapter.getCount(); size ++){
查看listItem = myListAdapter.getView(size,null,myListView);
listItem.measure(0,0); totalHeight + = listItem.getMeasuredHeight();
}
//在adapterViewGroup.LayoutParams中设置listview项目params = myListView.getLayoutParams();
params.height = totalHeight +(myListView.getDividerHeight()*(myListAdapter.getCount()-1));
myListView.setLayoutParams(params);
//在日志上打印适配器的高度
Log.i(“ listItem:的高度,”,String.valueOf(totalHeight));
异常处理:
空对象引用上的“ void android.view.View.measure(int,int)”
答:刚刚设置:
android:nestedScrollingEnabled =“ false”
在父级的xml中