我有一个使用案例,我从网络下载一些数据,并填充一个列表,当用户点击它们时,又有另一个列表(同样来自网络的数据)。当用户点击第二个列表中的一个项目时,我想显示一个新的屏幕。新片段重叠工具栏
我到目前为止所做的是一个有两个片段的活动(每个列表一个)。这两个片段都位于CoordinatorLayout
之内并位于工具栏下方。但是我想要显示的新屏幕不应该包含工具栏。因此我不能使用我用于其他两个片段的FrameLayout
。 因为我想要用户启动时这个新屏幕能够与后退按钮移回到先前的状态(第二个列表加载和滚动,直到用户点击一个项目)我不认为它可能创建一个新的Activity
自从保持这种状态并不容易。
有没有一种方法,我可以创造以前和上面新建一个片段Toolbar
,如果我只是创建这个片段将不会有任何性能损失,因为操作系统将在同一时间绘制两个片段(但只显示一个)?请注意,第二个片段中已经加载了很多图像。
我的XML布局现在看起来是这样的:
<android.support.v4.widget.DrawerLayout
android:id="@+id/dl_container"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar android:id="@+id/tb_toolbar"
android:gravity="center"
android:background="@color/white" android:minHeight="?attr/actionBarSize"
android:layout_width="match_parent" android:layout_height="wrap_content">
<TextView android:id="@+id/toolbar_title" android:layout_gravity="center"
android:textSize="22sp" android:textColor="@color/toolbat_title_color"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</android.support.v7.widget.Toolbar>
<FrameLayout
android:id="@+id/fl_content" android:layout_marginTop="?android:attr/actionBarSize"
android:layout_width="match_parent" android:layout_height="match_parent" />
<include android:id="@+id/bottom_sheet"
layout="@layout/bottom_sheet_video" />
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nv_navigation"
android:layout_width="wrap_content" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:layout_gravity="start"
/>
((MainActivity)getActivity())getActionBar()隐藏();在你的片段onCreateView方法 –
@Mes,在前面的片段xml背景中添加白色背景 –