gpt4 book ai didi

android - 如何将溢出菜单添加到工具栏?

转载 作者:IT老高 更新时间:2023-10-28 22:25:02 25 4
gpt4 key购买 nike

我正在尝试在我的应用中使用 Android ActionBar,并且有一个选项隐藏在溢出菜单中。

那里有很多文档,但令人困惑,因为其中大部分仅与非常旧的 Android 版本相关,并且当您尝试应用相同的概念时,它们不再起作用或工作方式不同。

这是在我的 Activity 布局中

<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:titleTextColor="@android:color/white"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

这是在我的 ActivityonCreate() 方法中

// sets up activity toolbar
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);

myToolbar.showOverflowMenu();
myToolbar.setTitleTextColor(R.color.lightPrimaryText);

我也尝试从 onCreateOptionsMenu() 扩充菜单 xml 文件,但这也没有给我想要的结果。

最佳答案

res/menu资源文件夹中为你的Toolbar定义一个Menu,例如:

toolbar_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".activity.MainActivity">

<item
android:id="@+id/action_sign_out"
android:title="@string/toolbar_sign_out"
app:showAsAction="never"/>
</menu>

设置 app:showAsAction="never" 确保这个 MenuItem 不会显示在 Toolbar 中,而是放置在溢出菜单中而是。

Activity 的主题应该是(或派生自)NoActionBar 主题之一(例如,Theme.AppCompat.NoActionBar,或 Theme.MaterialComponents.NoActionBar 如果您使用的是 Material Components )。

在您的 Activity 中,设置您的 Toolbar:

Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);

并覆盖 onCreateOptionsMenu() 以扩充您之前定义的菜单资源:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar_menu, menu);
return true;
}

您可以覆盖 onOptionsItemSelected() 来定义 MenuItem(s) 的 onClick 行为:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_sign_out: {
// do your sign-out stuff
break;
}
// case blocks for other MenuItems (if any)
}
return true;
}

关于android - 如何将溢出菜单添加到工具栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39439039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com