1. 程式人生 > >沉浸式工作列和虛擬按鍵兩者兼顧的方法

沉浸式工作列和虛擬按鍵兩者兼顧的方法

最近客戶反映,他們有些手機用的是華為或者三星的那種只有虛擬按鍵的。使用公司的app的時候,會出現虛擬按鍵跟app的導航欄重疊的問題。今天計劃解決這個問題,百度了一下發現蠻多都不起作用,最後找到一個起作用的,非常感謝原作者,然後我做一個記錄。

第一步,寫一個工具類

public class NavigationBarUtil {

    public static void assistActivity(View content) {
        new NavigationBarUtil(content);
}

    private View mChildOfContent;
    private int 
usableHeightPrevious; private ViewGroup.LayoutParams frameLayoutParams; private NavigationBarUtil(View content) { mChildOfContent = content; mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { public void onGlobalLayout
() { possiblyResizeChildOfContent(); } }); frameLayoutParams = mChildOfContent.getLayoutParams(); } private void possiblyResizeChildOfContent() { int usableHeightNow = computeUsableHeight(); if (usableHeightNow != usableHeightPrevious) { //將計算的可視高度設定成檢視的高度
frameLayoutParams.height = usableHeightNow; mChildOfContent.requestLayout();//請求重新佈局 usableHeightPrevious = usableHeightNow; } } private int computeUsableHeight() { //計算檢視可視高度 Rect r = new Rect(); mChildOfContent.getWindowVisibleDisplayFrame(r); // 這裡是調整頂起的高度,可以直接用r.bottom return (r.bottom); } }

第二步,在你的activity中呼叫如下方法,即可。

NavigationBarUtil.assistActivity(findViewById(android.R.id.content));
//透明狀態列
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明導航欄
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

最終效果如下


相關推薦

沉浸工作虛擬按鍵兩者兼顧方法

最近客戶反映,他們有些手機用的是華為或者三星的那種只有虛擬按鍵的。使用公司的app的時候,會出現虛擬按鍵跟app的導航欄重疊的問題。今天計劃解決這個問題,百度了一下發現蠻多都不起作用,最後找到一個起作用的,非常感謝原作者,然後我做一個記錄。第一步,寫一個工具類public c

android4.4以上沉浸狀態導航欄實現以及Bar的其他管理

自從android4.4開始,android手機狀態列再也不是一成黑的時代,之前叫做變色龍,miui6釋出會把他叫做沉浸式,之後大家就自然而然的接受了沉浸式這個名稱,其實實際應該叫做Translucent Bar,即為透明狀態列。   沉浸式實現原理其實是使整個activity佈局延伸到整個螢幕,然

Android設定沉浸狀態Material主題

1.設定沉浸式狀態列的方法 /** * true 進入全屏模式,狀態列不顯示 * false 顯示狀態列 */ public static void setSystemUiVisibility(Activity activity,

Android 沉浸狀態 activity 進出動畫

在某些情況下,我們需要設定狀態列的顏色,達到一種色調統一的效果。因此 便需要沉浸式樣式。 colorPrimary、colorPrimary、colorAccent 狀態列相關的屬性 同時在APP頁面

簡單易懂的沉浸狀態使用詳解(1)——狀態全透明(含虛擬按鍵適配)

說明:我儘量不打錯別字,用詞準確,不造成閱讀障礙。沉浸式狀態列就是指那種狀態列透明或半透明或與ToolBar顏色配合的顏色。這個“沉浸式”的名稱已不可考究,錯誤的叫法叫多了,大家也就接受了。狀態列的使用大致分為兩種方式和兩種情況,方式一: 通過修改主題的方式修改狀態列。方式二

安卓如何設定沉浸狀態,注意處理華為等有虛擬按鍵的問題

當前安卓開發中,基本都使用了沉浸時候狀態列,拉伸視覺體驗,增大了螢幕空間,但是如何設定沉浸式狀態列呢,這裡簡單進行介紹: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { activity

TOOLBAR沉浸狀態入門

toolbar是android sdk API21新增的元件,是ActionBar的加強版,更加方便自定義佈局。api21之後可以直接使用toolbar,但是我們肯定要支援api21之前的,下邊的所有程式碼都是相容21之前的 簡單toolbar 步驟 首先寫好style

Android之ToolBar自定義ToolBar實現沉浸狀態

沉浸式狀態列確切的說應該叫做透明狀態列。一般情況下,狀態列的底色都為黑色,而沉浸式狀態列則是把狀態列設定為透明或者半透明。 沉浸式狀態列是從android Kitkat(Android 4.4)開始出

Android動態顯示隱藏狀態/實現沉浸狀態

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // getWindow().setFlags(WindowMa

沉浸狀態實現,讓狀態導航欄變色吧

該功能只能適應Android4.4及以上版本,4.4版本真機,5.0版本真機,6.0版本模擬器測試通過 該方法來自https://github.com/jgilfelt/SystemBarTint開源庫 效果圖: 實現步驟: (一)Android Studio專案新增依賴

Android 4.4之後狀態導航欄細節美化(沉浸狀態

1. 簡介 其實標題我是打算叫“搶眼的沉浸式狀態列”,但是檢視多篇文章以及官方文件發現,雖然“沉浸式狀態列”這個名字已經爛大街並且只要一提到這個標籤大家都知道是一個什麼樣的效果,其實沉浸式並不是這樣理解的,檢視官方文件發現,Google定義的沉浸式

Android關於全屏設定隱藏狀態沉浸狀態的總結

1.全屏和推出全屏   實現全屏  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.Layo

漫談透明狀態沉浸狀態

package com.example.administrator.mystatusbar; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.Drawable; i

DrawerLayout側滑選單、Toolbar沉浸狀態的使用

  最近在開發中需要用到側滑選單,以前使用的SlidingMenu,但似乎已經被Google淘汰了(過時了),於是乎使用了DrawerLayout來實現,既然是在專案使用的,那麼Toolbar和沉浸式狀態列也是要配合使用的,這裡做一下記錄。   我們先來看一看

解決沉浸狀態底部導航與虛擬鍵衝突

if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTE

【取什麼主題好呢】沉浸狀態----統一Title欄高度

新手上路 直接po程式碼(複製的時候記得加上setBar) 先是網上很好找到的“通過設定全屏,設定狀態列透明” /** * 通過設定全屏,設定狀態列透明 * @param activity */ public static void

vue專案 使用Hbuilder打包app 設定沉浸狀態

使用 Hbuilder新建好移動app專案後,mainfest.json這個檔案裡的 plus裡設定 statusbar ..... "plus": { "statusbar": { "immersed": true },

android 沉浸狀態(像ios那樣的狀態與應用統一顏色樣式)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android 沉浸狀態完美解決方案

現在搜尋Android 沉浸式狀態列,真的是一堆一堆,寫的特別多,但是真正用的舒服的真沒有,在這裡自己整理一下開發記錄   注意,在使用這個步驟過程之前,請把之前設定的程式碼註釋一下 把佈局帶有android:fitsSystemWindows註釋掉 style檔案中凡是在style.xml

移動端沉浸狀態H5 webAPP----(轉載學習)

2017年08月24日  ·  5.5k 次閱讀 H5+狀態列透明(沉浸式)/全屏/設定顏色 整理 移動端web H5+對web APP狀態列設定整理: 開發工具:HBuilder  直接新建移動APP專案 測試方法為HBuilder的i