gpt4 book ai didi

android - 如何将 Fragment 声明为隐藏在 XML 布局中

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:39 28 4
gpt4 key购买 nike

我的 Activity 在单个 XML 布局中声明其所有 GUI fragment 。它只需要在启动时显示一些 fragment ;其余的在用户与应用程序交互时显示。部分布局如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/map_panel"
android:name="com.example.MapPanel"
android:layout_width="match_parent"
android:layout_height="@dimen/map_panel_height" />
<fragment
android:id="@+id/list_panel"
android:name="com.example.ListPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/map_panel" />
<fragment
android:id="@+id/detail_panel"
android:name="com.example.DetailPanel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/map_panel"
android:visibility="gone" />

我的 Intent 是 list_panel fragment 在启动时可见,detail_panel在用户从列表中选择某项之前, fragment 一直处于隐藏状态。

默认情况下, fragment 以 isHidden 开头属性为假。这意味着我的 Activity 必须遍历加载的 fragment 并手动调用 isHidden(true)在像 detail_panel 这样的 fragment 上在启动时。

我更愿意声明 isHidden XML 布局中的状态。但是,设置 android:visibility="gone"<fragment>声明不会改变 isHidden status,我找不到任何关于另一个可以解决问题的属性的文档。

是否可以在 <fragment> 上设置 XML 属性使其隐藏?

注意:我不关心 View 可见性,我关心 fragment.isHidden()值(value)。这会影响 FragmentManager 操纵返回堆栈和执行动画的方式。如果您调用 transaction.show(fragment)在 View 不可见或消失的 fragment 上,但是 fragment.isHidden()值为 false,则 FragmentManager 不会使 View 可见。参见 http://developer.android.com/reference/android/app/Fragment.html#isHidden()供引用。

最佳答案

我遇到过类似的情况,我不得不隐藏一个 fragment 。

我只是将 fragment 包含在 LinearLayout 中并将布局标记为可见/消失。

<LinearLayout
android:id="@+id/map_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" >

<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</LinearLayout>

关于android - 如何将 Fragment 声明为隐藏在 XML 布局中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19992309/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com