我有一个活动,我在FrameLayout
容器中以编程方式添加删除片段。
如果我保留android:fitsSystemWindows="true"
活动,它会按预期工作。但是如果我在节目中为所有片段应用android:fitsSystemWindows="true"
,我想在片段布局中应用android:fitsSystemWindows="true"
或在片段中以编程方式应用。{/ p>
有人面对这个吗?
我的布局如下所示。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
</LinearLayout>
答案 0 :(得分:0)
如果我读得正确,您希望单个活动显示各种片段全屏(fitsSystemWindows="false"
)或标准布局,状态/操作/导航条可见,而不会遮挡窗口内容(fitsSystemWindows="true"
)。
可以通过在单个FrameLayout
内设置单独的RelativeLayout
个容器来实现此目的。
然后,您可以选择要将片段加载到哪个容器中,具体取决于它应该是完整的还是标准的屏幕布局,还要记住从中删除任何片段和/或隐藏其他帧布局。
您当然需要协调系统UI可见性以显示/隐藏/覆盖操作栏和状态/导航栏,但这不在问题的范围内。请参阅Managing the System UI上的文档。
这是我的意思的一个例子:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false" >
<FrameLayout
android:id="@+id/containerFullScreen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false" />
<FrameLayout
android:id="@+id/containerNormalScreen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true" />
</RelativeLayout>
第一帧布局将填满屏幕,第二帧将支持状态/动作/导航栏的插图。