指尖世界

分享的乐趣

[置顶] Android 5.0 设置状态栏全透明,将布局顶到status bar上

类别: 观点 更新时间: 2016-03-02

[摘要:起首,学问贮备: WindowManager.LayoutParams: View.SYSTEM_UI_FLAG_FULLSCREEN, //齐屏,状况栏战导航栏没有表现 View.SYSTEM_UI_FLAG_HIDE_NAVIGATION, //隐蔽导航栏 View.SYS]

首先,知识储备:

WindowManager.LayoutParams:

View.SYSTEM_UI_FLAG_FULLSCREEN, //全屏,状态栏和导航栏不显示

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION, //隐藏导航栏

View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, //全屏,状态栏会盖在布局上

View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, //全屏,状态栏会盖在布局上

View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, 

View.SYSTEM_UI_FLAG_LAYOUT_STABLE,

View.SYSTEM_UI_FLAG_LOW_PROFILE,

View.SYSTEM_UI_FLAG_VISIBLE, //显示状态栏和导航栏

View.SYSTEM_UI_LAYOUT_FLAGS


设置状态栏透明:

方法一:在代码中动态修改

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP )
{
    Window window = ((Activity)getContext()).getWindow();//获取window
    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);
}
这样状态栏就会透明,布局可以直接顶到状态栏上,如图

[置顶] Android 5.0 设置状态栏全透明,将布局顶到status bar上_image0


方法二:写一个Theme ,在AndroidManifest中设置activity 的theme。在values-v21中的styles中添加这个theme

<style name="TransAppTheme" parent="AppTheme">
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:windowEnterTransition">@android:transition/fade</item>
    <item name="android:windowExitTransition">@android:transition/fade</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
</style>


AndroidManifest

<activity

     android:name=".MainActivity"

android:theme="@style/TransAppTheme" />





感谢关注 V8指尖世界Android频道,v8en.com是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 V8指尖世界!