Android 透明状态栏和toolBar的结合使用

image.png

透明状态栏 Activity 只包含了一个match_parent 的 ImageView,此Activity的主题为DarkActionBar

<ImageView
        android:id="@+id/imageView_car_id"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:scaleType="centerCrop"
        app:srcCompat="@mipmap/hzw1" />

方法一:直接在Activity的主题中设置 <item name="android:windowTranslucentStatus">true</item>

<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>

方法二:
在Activity的onCreate setConten'tView 返回之前设置

        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Window window = getWindow();
             window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                window.setStatusBarColor(Color.TRANSPARENT);
            window.setNavigationBarColor(Color.TRANSPARENT);
        }
或者:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
   View decorView = getWindow().getDecorView();
     decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |       
     View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
     getWindow().setStatusBarColor(Color.TRANSPARENT);
 }

现在设置Activity的主题为NoActionBar

  <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>
image.png

ToolBar和ActionBar结合
首先需要在Activity的主题中设置NoActionBar,并设置
<item name="android:windowTranslucentStatus">true</item>
并且在Activity 中设置
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/layID"
    android:fitsSystemWindows="false"
    android:background="@color/white" >
    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:id="@+id/toolbar"
        android:background="@color/colorPrimary"
        android:layout_height="56dp">
    </android.support.v7.widget.Toolbar>

</android.support.constraint.ConstraintLayout>
image.png

设置android:fitsSystemWindows="true"

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容