Step1: Create a status bar class like below
public class StatusBarView extends View
{
private int mStatusBarHeight;
public StatusBarView(Context context)
{
this(context, null);
}
public StatusBarView(Context context, AttributeSet attrs)
{
super(context, attrs);
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
}
@Override
public WindowInsets onApplyWindowInsets(WindowInsets insets)
{
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
mStatusBarHeight = insets.getSystemWindowInsetTop();
return insets.consumeSystemWindowInsets();
}
return insets;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec),mStatusBarHeight);
}
}
Step2: create a drawable gradient like below
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:type="linear"
android:angle="135"
android:endColor="#F34D80"
android:startColor="#FF5858"/><!--android:centerColor="#C12389"-->
</shape>
Step3: create a layout like below
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="wrap_content"
android:orientation="vertical">
<YOURPACKAGENAME.StatusBarView
android:id="@+id/status_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/toolbar_bg_gradient"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@drawable/toolbar_bg_gradient"
android:elevation="0dp"
android:minHeight="?attr/actionBarSize"
app:contentInsetStartWithNavigation="0dp"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:subtitleTextColor="@android:color/white"
app:theme="@style/AppTheme.AppBarOverlay"
app:titleTextColor="@android:color/white" />
</LinearLayout>
Step4: create a style for activity
<style name="AppTheme.NoActionBarMain" parent="Base.Theme.AppCompat.Light">
<item name="windowActionBar">false</item>
<item name="android:windowDisablePreview">true</item>
<item name="windowNoTitle">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">true</item>
<item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
<item name="android:colorForeground">@color/foreground_material_light</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionModeStyle">@style/LywActionMode</item>
</style>
<style name="LywActionMode" parent="Base.Widget.AppCompat.ActionMode">
<item name="background">@color/colorPrimary</item>
<item name="backgroundSplit">@color/colorPrimary</item>
</style>