Android当滚动视图子有权重时,如何在父滚动视图中使用列表视图子

时间:2015-01-17 16:35:37

标签: android

android如何在Scroll视图中使用List视图。意思是当我在滚动视图中使用列表视图比没有工作我的列表视图意味着不滚动列表项。我想当列表视图有多个列表项时滚动视图滚动被禁用,列表视图将滚动。在我的结尾列表视图和滚动视图滚动都不能正常工作。在滚动视图中,孩子也有重量。

1 个答案:

答案 0 :(得分:0)

你认为Android的主要问题是不支持它。

您可以使用滚动视图,但需要使用

等功能调整listview的大小
public static void getListViewSize(ListView myListView) {
    ListAdapter myListAdapter = myListView.getAdapter();
    if (myListAdapter == null) {
        //do nothing return null
        return;
    }
    //set listAdapter in loop for getting final size
    int totalHeight = 0;
    for (int size = 0; size < myListAdapter.getCount(); size++) {
        View listItem = myListAdapter.getView(size, null, myListView);
        listItem.measure(0, 0);
        totalHeight += listItem.getMeasuredHeight();
    }
    //setting listview item in adapter
    ViewGroup.LayoutParams params = myListView.getLayoutParams();
    params.height = totalHeight + (myListView.getDividerHeight() * (myListAdapter.getCount() - 1));
    myListView.setLayoutParams(params);
    // print height of adapter on log
    Log.i("height of listItem:", String.valueOf(totalHeight));
}

这也应该可以正常使用3个列表视图(我用1测试它),但是listviews不能滚动(完全展开),只有scrollview。

这是一个限制,如果你滚动列表视图你失去了对scrollview的控制,所以如果所有都可以在某些显示分辨率上滚动,你的应用程序将无法正常工作。

对我来说最好的解决方案是使用3个片段来显示3个列表视图