【问题标题】:Android: How do I get a listview to stop treating a footer as an element in the list?Android:如何让列表视图停止将页脚视为列表中的元素?
【发布时间】:2013-08-29 08:18:14
【问题描述】:

我正在尝试在我的活动中显示在列表视图(具有自定义适配器)正下方的一些文本和一些按钮。如果列表中的东西太多,那么它应该位于屏幕底部,而列表视图滚动到顶部。

有人建议我从中创建一个视图并将其作为页脚,但是当我这样做时,它只是将页脚视为列表视图中的一行,并且它与其他所有内容一起滚动。这是我的代码

View footer = getLayoutInflater().inflate(R.layout.transaction_detail_footer, null);

    TextView t=(TextView)footer.findViewById(R.id.total); 
    t.setText("Total: 558");

    t= (TextView) footer.findViewById(R.id.funds);
    t.setText("Funds: 9800");

    getListView().addFooterView(footer);

    setListAdapter(new TransactionAdapter(TestLV.this,Vs,Vs));

其中 Vs 是一个字符串数组。

有人知道如何让它工作吗?

【问题讨论】:

  • 为什么不在列表视图下方放一个小的线性布局?
  • 因为当我尝试当列表视图变得太大时它会将其推离屏幕
  • 相对布局父级。 ListView 位于页脚 LinearLayout 上方
  • 我应该为 ListView 的高度添加什么?我假设我们在 xml 中执行所有这些操作。

标签: android listview android-listview footer


【解决方案1】:

这是ListView 的正常行为。 addFooterView() 将视图添加到列表末尾,而不是屏幕底部。 (见documentation)。为了实现您希望看到的效果,您需要在ListView 下方放置另一个固定视图——例如,一个LinearLayout 在顶部包含ListView,另一个在底部包含LinearLayout

【讨论】:

  • 但是我应该为列表视图的高度放什么,这样如果它变得太大,它就不会挤掉其他所有东西?
  • 查看“layout_weight”属性。您可以为 LinearLayout 中的所有视图设置它。
  • 即使列表视图只有几行,是否只给列表视图的权重为 1 也会使线性布局保持在底部?
  • 如果只有几行,我希望页脚位于滚动列表下方。
  • 几年前有一篇Romaine Guy的文章,他指出滚动页脚的一种可能性是将布局高度设置为0dp;但是,这是针对页脚上方的ScrollView。我似乎无法在谷歌上搜索这篇文章,但它一定在某个地方。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 2013-08-26
  • 1970-01-01
  • 2012-07-24
  • 2015-07-26
  • 1970-01-01
  • 2021-03-21
相关资源
最近更新 更多