微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 如何将片段声明为隐藏在XML布局中

我的活动将其所有GUI片段声明为单个 XML布局.它只需要在启动时显示几个片段;当用户与应用程序交互时,其余的显示.布局的一部分如下:
<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" />

我的意图是list_panel片段在启动时是可见的,并且detail_panel片段被隐藏,直到用户从列表中选择某些内容.

认情况下,片段以isHidden属性开头为false.这意味着我的活动必须遍历加载的片段,并在启动时手动调用片断,如detail_panel上的isHidden(true).

我更喜欢在XML布局中声明isHidden状态.但是,在< fragment>中设置android:visibility =“gone”声明不会改变isHidden的状态,我找不到任何关于另一个属性的文档,这将是一个伎俩.

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

注意:我不关心视图的可见性,我关心的是fragment.isHidden()值.这会影响FragmentManager如何操作后堆栈并执行动画.如果在视图不可见或不见的片段上调用transaction.show(fragment),但是fragment.isHidden()值为false,则FragmentManager将不会使视图可见.见http://developer.android.com/reference/android/app/Fragment.html#isHidden()参考.

解决方法

我面临着类似的情况,在那里我不得不隐藏一个片段.

我简单地将片段包含在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>

原文地址:https://www.jb51.cc/android/311405.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐