具有不同工具栏布局的单个活动和多个片段

时间:2018-11-23 10:10:18

标签: android toolbar fullscreen android-collapsingtoolbarlayout

我的应用中有一个具有“单活动多片段”架构的应用。问题是,有一个带有正常工具栏的列表片段,用户可以从此处单击并转到“详细信息”屏幕。现在在“详细信息”屏幕中,我希望“活动”变为具有CoordinatorLayout和“折叠工具栏”的全屏状态,其中“状态栏”区域覆盖在布局中为透明。并且当用户返回到列表屏幕时。该活动应禁用全屏,并再次获得StatusBar颜色。

这里的问题是我使用以下代码将活动设置为全屏显示:

window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

当用户返回时,我通过以下代码禁用全屏显示:

window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE

禁用全屏显示后,在上一个片段中,我的界面边界被剪掉了。

谢谢。

2 个答案:

答案 0 :(得分:0)

在您的DetailsActivity中尝试此操作-

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // remove title
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
}

答案 1 :(得分:0)

我建议使用

android:theme="@style/AppTheme.NoActionBar" 为了您的活动。

并在自定义工具栏上的XML activity中构建

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar_top"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/action_bar_bkgnd"
    app:theme="@style/ToolBarTheme" >


     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Toolbar Title"
        android:layout_gravity="center"
        android:id="@+id/toolbar_title" />


    </android.support.v7.widget.Toolbar>

以及您的活动课程

Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top);
TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title);

现在,对于您的fragments,您要做的就是显示或隐藏此toolbar,具体取决于您想使用的fragment还是其他toolbar,并且您可以使用OnResumeOnPause的片段来做到这一点。