zoukankan      html  css  js  c++  java
  • ListView嵌套在ScrollView内显示不全的解决办法

    ListView嵌套在ScrollView里面,只能够显示第一条数据。

    因为ListView其实也是一个scrollView,scrollView默认是禁止嵌套的,起码导致内部的scrollView无法正确计算高度。[为什么会无法正常计算?]

    解决办法也很简单,就是手动计算listView的高度并动态设置。

    public static void setListViewHeightBaseOnChildren(ListView listView) {
            if (listView != null) {
                ListAdapter adapter = listView.getAdapter();
                int totalHeight = 0;
                int count = adapter.getCount();
                for (int i = 0; i < count; i++) {
               //View child = listView.getChildAt(i);//crash[why?]
                    View child = adapter.getView(i, null, listView);
                    child.measure(0, 0);
                    totalHeight += child.getMeasuredHeight();//有关获取一个view高度的方法?
                }
                if (count > 0) {
                    totalHeight += (count - 1) * listView.getDividerHeight();
                }
                LayoutParams params = listView.getLayoutParams();
                params.height = totalHeight;
                listView.setLayoutParams(params);
            }
        }
  • 相关阅读:
    AcWing356 次小生成树(lca)
    牛客 Rinne Loves Edges(dp)
    软件的生命周期和测试流程
    软件测试的学习经历回顾-第一天
    java List集合
    c#Socket通信
    c#线程2
    c#线程1
    c#Linq联合查询
    c#拓展方法
  • 原文地址:https://www.cnblogs.com/arthur3/p/3167864.html
Copyright © 2011-2022 走看看