android 布局防抖动,Android全屏返回布局抖动问题
在api19以后actvityA切到actvityB ,如果B是全屏的,A是非全屏的,這個(gè)時(shí)候切換回A會(huì)有一個(gè)狀態(tài)欄出現(xiàn)的動(dòng)畫,隨著狀態(tài)欄出現(xiàn)動(dòng)畫我們的布局會(huì)出現(xiàn)一個(gè)從上往下的抖動(dòng)。
在ActvityA的setContentView()方法后調(diào)用initStatusBar()方可解決問題
public void initStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
// 獲取狀態(tài)欄高度
int statusBarHeight = getResources().getDimensionPixelSize(resourceId);
View rectView = new View(this);
// 繪制一個(gè)和狀態(tài)欄一樣高的矩形,并添加到視圖中
LinearLayout.LayoutParams params
= new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight);
rectView.setLayoutParams(params);
//設(shè)置狀態(tài)欄顏色(該顏色根據(jù)你的App主題自行更改)
rectView.setBackgroundColor(ContextCompat.getColor(this, R.color.colorPrimaryDark));
// 添加矩形View到布局中
ViewGroup decorView = (ViewGroup) getWindow().getDecorView();
decorView.addView(rectView);
ViewGroup rootView = (ViewGroup) ((ViewGroup) this.findViewById(android.R.id.content)).getChildAt(0);
rootView.setFitsSystemWindows(true);
rootView.setClipToPadding(true);
}
}
總結(jié)
以上是生活随笔為你收集整理的android 布局防抖动,Android全屏返回布局抖动问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android低电量提示,Android
- 下一篇: Android查看web日志,详解And