国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

解決android 顯示內(nèi)容被底部導(dǎo)航欄遮擋的問題

2019-12-12 00:40:02
字體:
供稿:網(wǎng)友

描述:

由于產(chǎn)品需求,要求含有EditText的界面全屏顯示,最好的解決方式是使用AndroidBug5497Workaround.assistActivity(this)

的方式來解決,但是華為和魅族手機(jī)系統(tǒng)自帶的有底部導(dǎo)航欄,會造成一些布局被遮擋。

解決方案:在values-21的style.xml中添加android:windowDrawsSystemBarBackgrounds”并將值設(shè)置為false,方式如下

在style引用的主題里面加入android:windowDrawsSystemBarBackgrounds”并將值設(shè)置為false,會自動提醒點(diǎn)擊alt+Enter會新建values-21的文件夾并生成styles.xml的文件。

也可以自己忽略的,直接新建values-21的文件夾然后新建一個styles.xml的文件,將主題里面的內(nèi)容復(fù)制到styles.xml里面然后加上加入android:windowDrawsSystemBarBackgrounds”并將值設(shè)置為false即可解決。

例外:附上(網(wǎng)上找到的)

public class AndroidBug5497Workaround {  // For more information, see https://code.google.com/p/android/issues/detail?id=5497 // To use this class, simply invoke assistActivity() on an Activity that already has its content  view set.  public static void assistActivity (Activity activity) { new AndroidBug5497Workaround(activity); } private Activity activity; private View mChildOfContent; private int usableHeightPrevious; private FrameLayout.LayoutParams frameLayoutParams;  private AndroidBug5497Workaround(Activity activity) { this.activity = activity; FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content); mChildOfContent = content.getChildAt(0); mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new  ViewTreeObserver.OnGlobalLayoutListener() {  public void onGlobalLayout() {  possiblyResizeChildOfContent();  } }); frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams(); }  private void possiblyResizeChildOfContent() { int usableHeightNow = computeUsableHeight(); LogUtils.e("possiblyResizeChildOfContent","usableHeightNow:"+usableHeightNow); LogUtils.e("possiblyResizeChildOfContent","usableHeightPrevious:"+usableHeightPrevious); if (usableHeightNow != usableHeightPrevious) {  int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight();   //這個判斷是為了解決19之前的版本不支持沉浸式狀態(tài)欄導(dǎo)致布局顯示不完全的問題  if(Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT){  Rect frame = new Rect();  activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  int statusBarHeight = frame.top;  usableHeightSansKeyboard -= statusBarHeight;  }  int heightDifference = usableHeightSansKeyboard - usableHeightNow;  if (heightDifference > (usableHeightSansKeyboard/4)) {  // keyboard probably just became visible  frameLayoutParams.height = usableHeightSansKeyboard - heightDifference;  } else {  // keyboard probably just became hidden  frameLayoutParams.height = usableHeightSansKeyboard;  }  mChildOfContent.requestLayout();  usableHeightPrevious = usableHeightNow; } }  private int computeUsableHeight() { Rect frame = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); int statusBarHeight = frame.top;  Rect r = new Rect(); mChildOfContent.getWindowVisibleDisplayFrame(r);  //這個判斷是為了解決19之后的版本在彈出軟鍵盤時,鍵盤和推上去的布局(adjustResize)之間有黑色區(qū)域 的問題 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){  return (r.bottom - r.top)+statusBarHeight; }  return (r.bottom - r.top); } }

以上這篇解決android 顯示內(nèi)容被底部導(dǎo)航欄遮擋的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乡城县| 安平县| 晋中市| 明溪县| 德江县| 岑溪市| 理塘县| 灵山县| 香港 | 浏阳市| 丹寨县| 安达市| 乐至县| 贡嘎县| 积石山| 宜兰县| 西畴县| 长白| 通江县| 南康市| 辛集市| 银川市| 普宁市| 密云县| 天全县| 博客| 霞浦县| 海南省| 广元市| 右玉县| 常山县| 明水县| 饶阳县| 开阳县| 老河口市| 和林格尔县| 桐庐县| 奇台县| 来凤县| 西宁市| 万山特区|