我知道将ListView放在ScrollView中并不是推荐者。但我必须使用ListView,因为我使用的是适配器和其他各种方法。
我已经使用了这个代码,我在StackOverflow上找到了它,它向我显示了我的大部分列表。但是,在纵向模式下,一些项目从底部切断,在横向模式下也是如此。
如何纠正?为了澄清,我得到了一个ScrollView,其中包含一个包含一些元素的LinearLayout和我的XML中的ListView。 另外,如果我去一个新的活动,然后返回我可以简单地看到列表视图的滚动条显示并消失。怎么能纠正呢?
public static boolean setListViewHeightBasedOnItems(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter != null) {
int numberOfItems = listAdapter.getCount();
// Get total height of all items.
int totalItemsHeight = 0;
for (int itemPos = 0; itemPos < numberOfItems; itemPos++) {
View item = listAdapter.getView(itemPos, null, listView);
item.measure(0, 0);
totalItemsHeight += item.getMeasuredHeight();
}
// Get total height of all item dividers.
int totalDividersHeight = listView.getDividerHeight() *
(numberOfItems - 1);
// Set list height.
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalItemsHeight + totalDividersHeight;
listView.setLayoutParams(params);
listView.requestLayout();
return true;
} else {
return false;
}
}
答案 0 :(得分:0)
使用recycleler-view或list-view并使用view-type来扩展不同的布局,而不是使用scroolview并嵌套其他视图组。
答案 1 :(得分:0)
我认为你的问题有点误导。只要我们处理这些微小的移动屏幕,listview
如何在不滚动的情况下显示所有项目?
也许您希望scroll bar
不显示,然后您可以在attribute
上设置ScrollView
这样的内容:
android:scrollbars="none"