android listview不展示,提示The vertically scrolling ScrollView should not contain another vertically scr

文章标签: android,android scrollview
2016-9-4 18:17:27     103 人阅读    

今天出现一个比较奇怪的问题,做一个android activity,布局中有一个listview,但是在实际页面展示中,listview是不展示的,不管怎么设置都不行

仔细看了布局文件,发现了其中的一个问题
The vertically scrolling ScrollView should not contain another vertically scrolling widget (GridView)

原来 scrolling  本身就是一个滚动组件,在滚动组件中不能再使用其他的滚动组件,他们之间是有冲突的。

 

解决方法一

     既然要使用 listview,那么久没有必要再使用 ScrollView 了,直接把ScrollView  替换成 LinearLayout 布局,搞定

解决方法二

    如果还想继续配合使用的话

有网友试过,将ListView的layout_height设置为一个定值,比如说400dp,就可以有滑动的效果。 但是ListView只能显示部分元素,这不是我们想要的结果。 所以就需要一种方法可以根据ListView中Item数量,动态设置ListView的height,使全部item得到显示。

 /**
     * scrollview与listview合用会出现listview只显示一行多点。此方法是为了定死listview的高度就不会出现以上状况
     * 算出listview的高度
     */
    public static void setListViewHeight(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            return;
        }
        int totalHeight = 0;
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(1, 1);
            totalHeight += listItem.getMeasuredHeight();
        }
 
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)) + listView.getPaddingTop() + listView.getPaddingBottom();
        listView.setLayoutParams(params);
    }

  第二种方法,我没有试验过!!!

 


原文地址:http://www.itmmd.com/201609/800.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android activity 和 Fragment切换的一些细节   上一篇
下一篇  android 使用 ScrollView app直接崩溃

精彩回复
发表评论
姓名: