[英]Disable Toolbar's Up Button
如何禁用 ic_launcher 旁邊工具欄中的默認“向上”按鈕? 我只想在左邊留下 ic_launcher。
如果您使用Toolbar
( android.support.v7.widget.Toolbar
或本機)來禁用導航按鈕,只需調用:
toolbar.setNavigationIcon(null);
從文檔:
/**
* Set the icon to use for the toolbar's navigation button.
* ...
* @param icon Drawable to set, may be null to clear the icon
*/
public void setNavigationIcon(@Nullable Drawable icon) { ... }
Alex K 建議的是屏幕底部導航欄中的后退按鈕 - 而不是屏幕左上角的向上圖標。
對於 ActionBar up 圖標,您需要添加以下內容:
getActionBar().setDisplayHomeAsUpEnabled(false);
此外,在您的 manifest.xml 文件中,您可以刪除父元數據(如果有):
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.ParentActivity" />
將此代碼插入要在工具欄中隱藏向上按鈕的活動:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove UP button
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}
}
我遇到了類似的問題,空的 navigationIcon 持有人的左側空間。
在<android.support.v7.widget.Toolbar>
的 xml 中使用app:contentInsetLeft="0dp"
,它修復
清單中有兩種方式會導致向上導航出現在 AppBar 中。 正如@Kasira 所提到的:
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.ParentActivity" />
並且如果<activity>
標簽包含: android:parentActivityName=".activity.ParentActivtyName"
我在網上做了很多搜索,但找不到任何解決此問題的方法。 所以,我稍微翻了一下源代碼,得出了這個解決方案:
val field = Class.forName("androidx.appcompat.widget.Toolbar").getDeclaredField("mNavButtonView")
field.isAccessible = true
val toolbarUpButton = field.get(findViewById(R.id.main_toolbar)) as? ImageButton
toolbarUpButton?.isEnabled = false
這不會隱藏向上按鈕而是禁用它,如果您想指示該按鈕已禁用,您可以使用以下選擇器作為可繪制對象的顏色:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/enabled" android:state_enabled="true"/>
<item android:color="@color/disabled" android:state_enabled="false"/>
<item android:color="@color/enabled" />
</selector>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.