相关疑难解决方法(0)

半透明/透明状态栏+ CoordinatorLayout +工具栏+片段

我有以下设置:

  • 我正在使用AppCompat
  • MainActivity,包含一个片段并有一个工具栏,在向下滚动时隐藏
  • FragmentRecyclerView
  • 所有适合屏幕的视图都具有android:fitsSystemWindows="true"xml布局中的相应值

问题是,在这种情况下我无法使状态栏透明.我的工作如下:

  1. 创建活动并调用setContent
  2. 然后我尝试调整活动以编程方式获得如下的半透明工具栏:

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public void themeNavAndStatusBar(Activity activity)
    {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
            return;
    
        Window w = activity.getWindow();
        w.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        w.setFlags(
                WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
                WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        w.setFlags(
                WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
                WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        w.setNavigationBarColor(activity.getResources().getColor(android.R.color.transparent));
    
        w.setStatusBarColor(activity.getResources().getColor(android.R.color.transparent));
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. @+id/frame_containerfragment ()中的占位符替换为片段

在这种情况下,状态栏是纯色的,并且未在其下方绘制视图...为什么?

我想要的是

我想要一个工具栏,它滚动屏幕并完全隐藏,而此工具栏下面的内容应该适合屏幕,并在透明导航栏后面绘制.

布局

这是我的主要活动:

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/clMain"
    android:fitsSystemWindows="true"
    android:background="?attr/main_background_color"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:fitsSystemWindows="true"
        android:background="@null"
        app:elevation="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            android:elevation="4dp"
            android:theme="?actionBarThemeStyle"
            app:popupTheme="?actionBarPopupThemeStyle"
            app:layout_scrollFlags="scroll|enterAlways">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"> …
Run Code Online (Sandbox Code Playgroud)

android toolbar android-fragments android-coordinatorlayout

22
推荐指数
4
解决办法
4万
查看次数