ScrollView嵌套ListView,listView只显示一条

原创 2015年07月06日 16:32:04

ScrollView中嵌套listView,不管listView的高设置match还是wrap,都只显示一条数据,除非指定高度。
解决办法,得到listView每个item的高度,重绘listView。

public void setListViewHeightBasedOnChildren(ListView listView) {
        // 获取ListView的Adapter
        ConfirmAdapter listAdapter = (ConfirmAdapter) listView.getAdapter();
        if (listAdapter == null) {
            return;
        }

        int totalHeight = 0;
        for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
            // listAdapter.getCount()返回数据项的数目
            View listItem = listAdapter.getView(i, null, listView);
            // 计算item View 的宽高
            listItem.measure(0, 0);
            // 统计所有item的总高度
            totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
    }
这种方式解决,导致了另外一个问题:
如果listView不是ScrollView的最上面一项,进入页面时会直接把listView显示在中间。
在论坛上找到了一个大神的解决办法:@demon19850227


一开始的时候就让上面其中一个控件获得焦点,滚动条自然就到顶部去了,如下:
RelativeLayout rel = getRelativeLayout(R.id.confirm_rel_add);
        rel.setFocusable(true);
        rel.setFocusableInTouchMode(true);
        rel.requestFocus();

解决ListView在ScrollView里只显示单行的问题

ScrollView是常用的滑动显示内容的控件,有时会包含诸多类型的内容控件,如TextView、ImageView、ListView等混合使用;而在使用ListView时,最后运行往往发现ListV...
  • duguju
  • duguju
  • 2015年09月07日 14:31
  • 1565

解决ScrollView嵌套ListView显示不全问题

在看本文之前请写了解一下UNSPECIFIED、EXACTLY、AT_MOST三种模式。   在项目中经常会用到ScrollView嵌套ListView的情况。如果使用原生的ListView会出现只...
  • chenkai19920410
  • chenkai19920410
  • 2015年11月26日 23:06
  • 3838

ScrollView嵌套ListView——解决滑动冲突问题

//布局中的代码实现 一个简单的布局设置 演义滑动冲突
  • Mannver
  • Mannver
  • 2016年04月12日 20:49
  • 11023

千万不要在ScrollView中嵌套ListView

网上关于ScrollView嵌套ListView的文章很多,很多人都说yogn
  • lgl1170860350
  • lgl1170860350
  • 2014年06月27日 15:03
  • 2681

四种方案解决ScrollView嵌套ListView问题

四种方案解决ScrollView嵌套ListView问题
  • u010375364
  • u010375364
  • 2016年07月14日 17:32
  • 31845

Android开发之ScrollView中嵌套ListView的解决方案

在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全。我试过很多种方法,它们各有利弊。 在这里我将会从使用ScrollView嵌套ListVi...
  • MiniMicall
  • MiniMicall
  • 2014年11月10日 17:10
  • 17734

ScrollView 里面 嵌套ListView 导致listview无法完全显示数据的问题

导言---   本人Android小白一个,哈哈,总结下自己的辛苦历程,供自己回顾以及同各位大牛交流。如有错误,敬请留言交流。                                    ...
  • woodwoodxiaohei
  • woodwoodxiaohei
  • 2016年06月11日 16:52
  • 504

ScrollView嵌套Viewpager嵌套ListView时遇到的问题

界面显示不全,并且需要将TabLayout跟随ListView往上移动 当滑动Viewpager时ListView会突然跳到屏幕的顶部 当内容往上滑动,使TabLayout悬浮在顶部...
  • Stephen2Wong
  • Stephen2Wong
  • 2016年12月21日 15:40
  • 828

React-native IT喵~ ScrollView 嵌套ListView 如何实现上拉加载、下拉刷新

这里我用的 上拉、下拉组件是GitHub上这个:https://github.com/greatbsky/react-native-pull/wiki里面有个renderHeader方法 可以放Li...
  • lsgqjh
  • lsgqjh
  • 2017年06月07日 21:53
  • 1416

【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题

在一个滑动控件或者是布局里面,添加另外一个可以滑动的控件,通常会造成一些莫名其妙的问题。今天主要介绍在工作中遇到的,在ScrollView布局中嵌套Listview显示不正常,和在Listview中嵌...
  • bz419927089
  • bz419927089
  • 2014年08月15日 15:38
  • 13766
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ScrollView嵌套ListView,listView只显示一条
举报原因:
原因补充:

(最多只允许输入30个字)