将空白空间添加到ListView的末尾

Jos*_*osh 23 android listview

我有一个ListView,每个字母都有字母标题.我还有一个索引函数,将字母标题放在屏幕顶部.

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

我的问题是:有没有办法根据屏幕尺寸在屏幕的末尾添加一个空格?我想滚动,直到列表中的最后一项位于listView的顶部.

Hem*_*ori 84

添加空间的最简单方法是在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"/>
Run Code Online (Sandbox Code Playgroud)

对于 ListView

<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:clipToPadding="false"/>
Run Code Online (Sandbox Code Playgroud)

同样适用于 ScrollView

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:clipToPadding="false"/>
Run Code Online (Sandbox Code Playgroud)

这会将空白区域添加到顶部和底部,但在滚动视图时会隐藏空间.

  • 不要忘记添加`android:scrollbarStyle ="outsideOverlay"`所以你的滚动条不会留在填充内 (9认同)
  • 这必须是接受的答案.(y)的 (2认同)

Yuw*_*wen 5

请尝试以下方法:

View footer = new View(getActivity());
footer.setLayoutParams( new AbsListView.LayoutParams( LayoutParams.FILL_PARENT, 100 ));
mListView.addFooterView(footer, null, false);
Run Code Online (Sandbox Code Playgroud)

  • 什么是悲剧http://stackoverflow.com/questions/13366281/how-can-i-add-blank-space-to-the-end-of-a-listview与2 downvotes相同的答案 (3认同)

Aar*_*n C 2

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

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

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

您需要摆弄常量EXTRA来看看什么值最好。