关于实现android状态栏沉浸的几种方法
生活随笔
收集整理的這篇文章主要介紹了
关于实现android状态栏沉浸的几种方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法一
轉載自:https://blog.csdn.net/zephyr_g/article/details/53489320
步驟一:
首先,我們先在values下的style中加入如下代碼:
<!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style><style name="AppTheme.Main" parent="AppTheme" />AppTheme.Main是我們要設置給activity的主題,它應該繼承于AppTheme.NoActionBar,然后?
我們在values-v19中加入同樣的AppTheme.Main,如下所示:
步驟二
在布局文件的根布局中加入android:fitsSystemWindows=”true”?
方法二
轉載自:https://www.jianshu.com/p/b7bacc6805c2
步驟一
values
<resources><!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style><style name="AppTheme.TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar"/> </resources>values-v19
<resources><!-- Base application theme. --><style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar"><item name="android:windowTranslucentStatus">true</item><item name="android:windowTranslucentNavigation">true</item></style> </resources>values-v21
<resources><!-- Base application theme. --><style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar"><item name="android:windowTranslucentStatus">false</item><item name="android:windowTranslucentNavigation">true</item><!--Android 5.x開始需要把顏色設置透明,否則導航欄會呈現系統默認的淺灰色--><item name="android:statusBarColor">@android:color/transparent</item></style></resources>步驟二:
在activity中添加
private android.support.v7.widget.Toolbar mToolbar;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolbar=findViewById(R.id.toolbar);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
setHeight(mToolbar);
}
}
public void setHeight(View view) {
// 獲取actionbar的高度
TypedArray actionbarSizeTypedArray = obtainStyledAttributes(new int[]{
android.R.attr.actionBarSize
});
float height = actionbarSizeTypedArray.getDimension(0, 0);
// ToolBar的top值
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
double statusBarHeight = getStatusBarHeight(this);
lp.height = (int) (statusBarHeight + height);
view.setPadding(0,(int) statusBarHeight,0, 0);
mToolbar.setLayoutParams(lp);
}
private double getStatusBarHeight(Context context) {
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen",
"android");
if (resourceId > 0) {
result = context.getResources().getDimensionPixelSize(resourceId);
}
return result;
}
?
轉載于:https://www.cnblogs.com/lanlengran/p/9186166.html
總結
以上是生活随笔為你收集整理的关于实现android状态栏沉浸的几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java学习--设计模式之创建型模式
- 下一篇: 一位经验丰富的程序员如何建立网络初创企业