`
lccly
  • 浏览: 15113 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

在ScrollView添加一个ListView

 
阅读更多

正常来说,在ScrollView添加一个ListView后在真机上只会显示ListView的一行多一点,我也不理解为什么会这样,后来我把ListView的layout_height改成400dip,而不是用match_parent和wrap_content,我发现这样的话ListView就显示的多了很多。所以就产生了把ListView所有的item的高度算出来给ListView设置的想法。下面是代码:

 

public void setListViewHeightBasedOnChildren(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(0, 0);
            totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        params.height += 5;//if without this statement,the listview will be a little short
        listView.setLayoutParams(params);
    }

 

在代码的倒数第二行二我又给加了5个像素,这是因为我在listview的属性里面添加了padding=5dip。

然后每次ListView的数据一有变化就用这个函数设置一下就好了,不过这样总感觉效率很低,希望有达人给指点一下。

 

分享到:
评论

相关推荐

    ScrollView嵌套两个ListView

    总的来说,"ScrollView嵌套两个ListView"是一个在Android开发中常见的挑战,这个项目提供了一个实用的解决方案。通过自定义布局和事件处理,实现了在同一个ScrollView中展示和滚动多个ListView的功能,这对于需要...

    ScrollView不冲突嵌套ListView

    在实际编码过程中,我们可能需要创建一个新的类,如NestedListView,继承自ListView,并在NestedListView中添加以下代码: ```java @Override protected void onMeasure(int widthMeasureSpec, int ...

    ScrollView中嵌套Listview(两个)

    当需要在一个页面中展示大量数据,同时希望用户能滚动查看所有内容时,可能会尝试将ListView嵌套在ScrollView中。然而,这种做法通常会导致一些问题,如滚动冲突、只显示部分ListView项等。本文将深入探讨如何解决...

    ScrollView中自定义ListView

    为了解决这个问题,我们需要自定义一个ListView,让它能在ScrollView内正常工作。自定义ListView的关键在于保持ListView的滚动特性,同时避免与ScrollView的滚动冲突。我们可以通过重写onMeasure()和onLayout()方法...

    弹性拉伸Scrollview、scrollview嵌套listview和scrollview滑动监听demo

    本文将深入探讨如何实现“弹性拉伸”的ScrollView、在ScrollView中嵌套ListView以及添加ScrollView的滑动监听。这些技巧在创建复杂的用户界面时非常实用。 首先,让我们谈谈“弹性拉伸”效果的ScrollView。这种效果...

    解决scrollView和listview滚动冲突,实现listview滑动到顶端和底部之后还能拖拽一定的距离,松开后返回

    可以将原始的ScrollView替换为NestedScrollView,然后直接在其中添加ListView,通常可以避免大部分冲突。 接下来,我们要实现ListView滑动到底部或顶部后还能继续拖拽一段距离,松手后自动回弹的效果。这可以通过...

    ScrollView中嵌套ListView的例子

    本文将详细探讨如何在ScrollView中正确地嵌套一个ListView,以及解决可能出现的问题。 首先,了解ScrollView的工作原理。ScrollView是一个可滚动的单向容器,它可以包含多个子视图,但默认情况下,它只能滚动一个...

    ScrollView+LinearLayout 仿Listview 效果

    2. **在ScrollView中嵌套LinearLayout**: 在主布局文件中,使用ScrollView作为根视图,然后在其内部添加一个LinearLayout。设置LinearLayout的orientation为垂直(`android:orientation="vertical"`),以便它能堆叠...

    ScrollView,嵌套ListView,ListView并同时嵌套GridView

    在实际开发中,我们有时需要在一个视图中同时使用ScrollView、ListView和GridView。例如,ScrollView作为最外层容器,用来包裹整个布局,提供整体的滚动效果;ListView用于显示长列表,每个列表项内可能又包含一个...

    listview_scrollview动态改变Headview

    在ScrollView中,由于没有内置的滑动监听器,我们需要自定义一个ScrollView并重写`onScrollChanged()`方法: ```java public class CustomScrollView extends ScrollView { private OnScrollChangeListener ...

    用ScrollView做出来的listview

    然而,在某些情况下,我们可能需要实现一个自定义的滚动视图,这时就可以利用ScrollView来达到类似ListView的效果。ScrollView是一个可以包含单个直接子视图的布局,它可以垂直滚动,非常适合用来展示内容较多、无法...

    ScrollView嵌套ListView刷新

    2. **使用Header和Footer**:如果只是想在ListView顶部或底部添加一个固定的ScrollView,可以考虑使用ListView的addHeaderView()和addFooterView()方法,将ScrollView作为头部或尾部添加,这样就不需要嵌套,避免了...

    ScrollView+ViewPager+ListView或RecyclerView

    1. 添加一个“加载更多” footer view:在列表底部添加一个固定的视图,当用户滚动到列表底部时,触发加载更多数据的逻辑。 2. 使用`PagedList`:配合`Room`数据库或`LiveData`,可以自动处理分页加载。 3. 实现`...

    Android ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多

    最后,关于`ScrollView_GridView_listViewRefresh_Demo`这个示例项目,它很可能是包含了一个实际运行的代码实例,演示了如何在ScrollView中嵌套ListView和GridView,并实现了上下拉刷新和加载更多功能。通过查看和...

    listview在scrollview中完整显示

    5. **监听滚动事件**:如果需要在ScrollView滚动时执行某些操作,可以为ScrollView添加滚动监听,利用`OnScrollListener`接口中的方法,如`onScroll()`和`onScrollStateChanged()`。 通过以上步骤,我们便能成功地...

    ScrollView嵌套ListVIew两者之间滑动问题

    然而,当在一个ScrollView中嵌套一个ListView时,就会出现一些特殊的问题,主要是关于滑动事件的处理,即所谓的“滑动冲突”。 首先,我们要理解滑动冲突的本质。当ScrollView和ListView同时存在于同一个布局中,...

    listView和scrollView焦点冲突问题

    在一些项目中需要用到listview嵌套在scrollview中的情况,但会碰到焦点冲突,scrollview焦点覆盖listview造成listview不能滑动,这种情况时要在scrollview中添加android:fillViewport="true"这句,并在listview中...

    ScrollView嵌套ListView滑动冲突的解决方法

    另一种解决方案是将ListView放入另一个布局(如LinearLayout或RelativeLayout),然后再将这个布局添加到ScrollView中。这样,滑动事件会先由外部的ScrollView捕获,然后根据需要传递给内部的布局和ListView。 5. ...

    自定义ScrollView与ListView结合使用

    在Android开发中,有时我们需要在一个页面中展示大量的可滚动内容,并且这些内容可能包含多个不同类型的视图,这时就会涉及到ScrollView和ListView的结合使用。本文将深入探讨如何解决两者结合时可能出现的问题,...

    android ScrollView嵌套ListView,并且实现动态添加ListView里的Item

    ScrollView是一个可滚动的视图容器,它可以包含一个或多个视图,并允许用户上下滑动查看内容。而ListView则是一个用于展示长列表的视图,通常用于显示大量数据,它支持动态加载和滚动优化。然而,将ScrollView嵌套在...

Global site tag (gtag.js) - Google Analytics