- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的 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/
我是一名优秀的程序员,十分优秀!