【问题标题】:Sizing a ListView when it's a nested Fragment当 ListView 是嵌套的 Fragment 时调整其大小
【发布时间】:2024-01-14 16:42:01
【问题描述】:

我想要一个 ListView 来填充可用的空间,同时仍然为屏幕底部的小页脚视图留出空间。我正在尝试使用 RelativeLayout 来完成此操作,并尝试使用在 Limit number of rows of listview 讨论的解决方案。我遇到的问题是我正在使用嵌套片段,所以我的 ListView 实际上是我的 xml 中的 FrameLayout 然后我将 ListFragment 动态加载到该框架中。鉴于嵌套片段规定,我怎样才能像使用 ListView 一样让我的 FrameLayout 为“stackFromBottom”?我只需要阻止列表将另一个视图推离屏幕底部。感谢大家的宝贵时间。

【问题讨论】:

  • 我遇到的问题是我正在使用嵌套片段 RUN AWAY
  • 它比我预期的更具挑战性,但到目前为止,我已经能够解决它引起的所有问题。如果他们希望每个人都对所有事物进行分段,那么他们肯定需要让嵌套的 Fragments 使用起来不那么痛苦。
  • FrameLayoutListFragment 的容器(包含ListView)?如果是,我看不出你在哪里有问题,你可以在 Relativelayout 的底部添加页脚,然后将 FrameLayout 放在顶部视图和底部视图之间。
  • 我认为这也可以,但发生的事情是视图占据了屏幕的整个底部(其空间加上 ListView 的空间),然后当活动将我的 ListFragment 加载到FrameLayout 它占据了整个空间并将底部视图推离屏幕。
  • 您应该发布一些代码,尤其是您在应用中使用的布局文件。

标签: android android-layout android-fragments android-listview android-nested-fragment


【解决方案1】:

这是我想出的解决方案:

<TextView
    android:id="@+id/advertisement"
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:text="Ads will appear here"
    android:gravity="center"
    android:layout_alignParentBottom="true"/>

<FrameLayout
    android:id="@+id/news_frag"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/carousel_menu"
    android:layout_above="@id/advertisement"/>

诀窍是为 FrameLayout 设置 layout_above 和 layout_below,我只设置了一个,这显然是允许布局将其推离屏幕。另外值得注意的是,它们必须以与它们在页面上的实际显示方式相反的顺序声明,以便 FrameLayout 可以正确引用另一个 View。

【讨论】:

    最近更新 更多