【问题标题】:Adding Empty Space to End of ListView将空白空间添加到 ListView 的末尾
【发布时间】:2011-04-26 14:26:48
【问题描述】:

我有一个 ListView,每个字母都有按字母顺序排列的标题。我还有一个索引功能,可以将字母标题带到屏幕顶部。

我的问题是当我到达列表末尾时,setSelection 无法将最后几个标题置于顶部,因为它不会滚动到列表末尾。

我的问题是:有没有办法根据屏幕大小在屏幕末尾添加一个空白区域?我想滚动直到列表中的最后一项位于 listView 的顶部。

【问题讨论】:

    标签: android listview


    【解决方案1】:

    添加空格最简单的方法是在xml中添加填充并设置clipToPadding:"false"。

    对于RecyclerView

    <android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="20dp"
    android:paddingBottom="20dp"
    android:clipToPadding="false"/>
    

    对于ListView

    <ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="20dp"
    android:paddingBottom="20dp"
    android:clipToPadding="false"/>
    

    ScrollView 也是如此

    <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="20dp"
    android:paddingBottom="20dp"
    android:clipToPadding="false"/>
    

    这专门在顶部和底部添加空白空间,但在滚动视图时隐藏空间。

    【讨论】:

    • 这必须是已接受的答案。 (y)
    • 不要忘记添加android:scrollbarStyle="outsideOverlay",这样您的滚动条就不会停留在填充内
    • 完美!!为我工作。
    • 但问题是滚动功能消失了,屏幕完全空白(我设置了 android:paddingBottom="800dp")并且列表视图消失了。
    • @LoganGuo 用于在列表中的 1 位置动态添加项目,填充滚动不起作用
    【解决方案2】:

    尝试以下方法:

    View footer = new View(getActivity());
    footer.setLayoutParams( new AbsListView.LayoutParams( LayoutParams.FILL_PARENT, 100 ));
    mListView.addFooterView(footer, null, false);
    

    【讨论】:

    【解决方案3】:

    我假设您正在使用 BaseAdapter 的扩展名来填充您的 ListView?

    可能有一种内置的方法可以满足您的要求,但我不知道有哪一种。如果您最终自己创建它,这种方法怎么样:

    • 在getCount() 中返回list.size() + EXTRA
    • 修改 getItem() 以在它要求的项目不在您的列表中时返回正常的内容
    • 如果position 索引大于列表大小,则修改getView() 以将给定视图配置为与其余视图具有相同高度的简单水平填充

    您需要摆弄EXTRA 常量来查看最佳值。

    【讨论】:

    • 我不同意,@Shayan_Aryan 这个答案完美地帮助我在 30 秒内弄清楚该做什么:)
    • 仅在使用 BaseAdapter 的情况下,尽管提供完整信息的责任在于提出问题的人,并且他没有具体说明他使用了什么,所以这是一个有效的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    相关资源
    最近更新 更多