日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android 隐藏手机底部虚拟按键

發(fā)布時(shí)間:2024/4/15 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 隐藏手机底部虚拟按键 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


今天,簡(jiǎn)單講講android如何隱藏手機(jī)下面的虛擬按鍵。


其實(shí),自己在做界面適配時(shí),老是發(fā)現(xiàn)了華為手機(jī)存在適配的問題,主要就是華為手機(jī)有一個(gè)底部的虛擬按鍵占用了界面的部分空間,所以在網(wǎng)上搜索了如何隱藏華為手機(jī)下方的虛擬按鍵,最終找到的代碼。這里記錄一下。

/*** 隱藏虛擬按鍵,并且全屏*/protected void hideBottomUIMenu(){//隱藏虛擬按鍵,并且全屏if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower apiView v = this.getWindow().getDecorView();v.setSystemUiVisibility(View.GONE);} else if (Build.VERSION.SDK_INT >= 19) {//for new api versions.View decorView = getWindow().getDecorView();int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar // | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar| View.SYSTEM_UI_FLAG_IMMERSIVE;decorView.setSystemUiVisibility(uiOptions);getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);}}


/*** 檢查是否存在虛擬按鍵欄* @param context* @return*/public static boolean hasNavBar(Context context) {Resources res = context.getResources();int resourceId = res.getIdentifier("config_showNavigationBar", "bool", "android");if (resourceId != 0) {boolean hasNav = res.getBoolean(resourceId);// check override flagString sNavBarOverride = getNavBarOverride();if ("1".equals(sNavBarOverride)) {hasNav = false;} else if ("0".equals(sNavBarOverride)) {hasNav = true;}return hasNav;} else { // fallbackreturn !ViewConfiguration.get(context).hasPermanentMenuKey();}}/*** 判斷虛擬按鍵欄是否重寫* @return*/private static String getNavBarOverride() {String sNavBarOverride = null;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {try {Class c = Class.forName("android.os.SystemProperties");Method m = c.getDeclaredMethod("get", String.class);m.setAccessible(true);sNavBarOverride = (String) m.invoke(null, "qemu.hw.mainkeys");} catch (Throwable e) {}}return sNavBarOverride;}


簡(jiǎn)單講講,這個(gè)代碼調(diào)用時(shí)最好先調(diào)用hasNavBar(Context?context)判斷手機(jī)是否存在虛擬按鍵,然后調(diào)用hideBottomUIMenu()隱藏虛擬按鍵,不然在沒有虛擬按鍵的手機(jī)上直接使用hideBottomUIMenu()會(huì)存在問題。還有一點(diǎn)需要注意,那就是如果設(shè)置了沉浸式狀態(tài)欄,那么是無(wú)法隱藏底部虛擬按鍵的。

或者在xml文件里設(shè)置了

android:clipToPadding="true" android:fitsSystemWindows="true"


也是無(wú)法隱藏底部虛擬按鍵的。


android 隱藏手機(jī)底部虛擬按鍵就講完了。


就這么簡(jiǎn)單。



總結(jié)

以上是生活随笔為你收集整理的android 隐藏手机底部虚拟按键的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。