美文网首页
三步实现Android沉浸式状态栏的实现

三步实现Android沉浸式状态栏的实现

作者: 茶杯里的阳光 | 来源:发表于2017-06-01 20:55 被阅读123次

    1.本人封装一些baseActivity,所以就直接在onCreate中进行实现,整个项目下来全部沉浸式。
    public class BaseActivity extends FragmentActivity implements IBaseView {

    public static BaseActivity activity;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        activity = this;
    
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        Window window = activity.getWindow();
        window.getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.parseColor("#00000000"));
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
        }
    
        ViewGroup contentFrameLayout = (ViewGroup) findViewById(Window.ID_ANDROID_CONTENT);
        View parentView = contentFrameLayout.getChildAt(0);
        if (parentView != null && Build.VERSION.SDK_INT >= 14) {
            parentView.setFitsSystemWindows(true);
        }
    
    
    }
    @Override
    protected void onResume() {
        super.onResume();
    }
    @Override
    protected void onStop() {
        super.onStop();
    }
    
    @Override
    protected void onPause() {
        super.onPause(); 
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
    

    }
    2.样式Style,注意添加属性 <item name="android:windowIsTranslucent">true</item>

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

    3.在清单文件中引用,即可大功告成!!!

    相关文章

      网友评论

          本文标题:三步实现Android沉浸式状态栏的实现

          本文链接:https://www.haomeiwen.com/subject/hbzefxtx.html