在安卓Ø改變圖標的概念引入,但它仍然是通過第三方應用程序。 Custom Navigation Bar使用WRITE_SECURE_SETTINGS
更改圖標。 在Android O中,您可以更改酒吧的顯示,即Light或Dark主題。
解決方案2可能更多的是對您有所幫助。 您可以在導航欄上創建一個popup window
,具有所需的佈局,例如3個按鈕,最近的應用和主頁按鈕。通過這種方式,您可以相應地更改後退按鈕圖標。確保彈出窗口是相同的高度導航欄,然後你可以使自己的功能產品和最新的應用程序,並在後面function
您可以關閉BottomSheetDialog
並刪除彈出式窗口。
下面是主頁鍵以及最近應用程序的代碼。對於後退按鈕,請根據自己的圖標做相應的操作。
對於主頁按鈕。
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
對於最近使用的應用程序。
Class serviceManagerClass = Class.forName("android.os.ServiceManager");
Method getService = serviceManagerClass.getMethod("getService", String.class);
IBinder retbinder = (IBinder) getService.invoke(serviceManagerClass, "statusbar");
Class statusBarClass = Class.forName(retbinder.getInterfaceDescriptor());
Object statusBarObject = statusBarClass.getClasses()[0].getMethod("asInterface", IBinder.class).invoke(null, new Object[] { retbinder });
Method clearAll = statusBarClass.getMethod("toggleRecentApps");
clearAll.setAccessible(true);
clearAll.invoke(statusBarObject);
對於後退按鈕 //使用圖標和關閉BottomSheetDialog的功能。
對於由adb
命令計算的的導航欄
public static int getSoftButtonsBarSizePort(Activity activity) {
// getRealMetrics is only available with API 17 and +
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
int usableHeight = metrics.heightPixels;
activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int realHeight = metrics.heightPixels;
if (realHeight > usableHeight)
return realHeight - usableHeight;
else
return 0;
}
return 0;
}
你也可以做到這一點的高度,但要確保它可以搞砸你的navigationBar
,你不能回到原來的navigationBar
。
我希望它有幫助。
只有打開鍵盤時纔會顯示向下箭頭。我很好奇你有什麼用例?因爲如果它只是一個願望,比你還可以說*「我想要一個八角形而不是主頁按鈕」*。你想成爲一個壞男孩並且違反規則,這意味着用戶肯定知道在什麼情況下箭頭變成了箭頭向下,並且你想在那裏引入根本性的改變,顯然谷歌不允許這樣做,因爲用戶體驗應該是貫穿整個平臺。 – azizbekian
@azizbekian我想在顯示'BottomDialog'時顯示向下箭頭。當點擊後退按鈕時,'BottomDialog'被滑下來消除,顯示向下箭頭而不是傳統的後退按鈕是有意義的。 – Vlad
@azizbekian API允許您更改後退按鈕的行爲,因此允許您更改關聯的圖標是有意義的。 – ben75