我正在尝试从操作栏中删除下拉菜单ActionButton Overflow。在这种情况下,它将是具有3点和默认选项“设置”的那个。我想删除此项“设置”,因此,通过单击菜单图标,他必须自动采取行动。有什么想法吗?
答案 0 :(得分:0)
你无法摆脱溢出。您可以要求操作栏考虑将一个(或多个)操作栏项目设置为操作栏中的工具栏样式按钮。要做到这一点:
如果您使用的是原生操作栏,请将android:showAsAction="ifRoom"
添加到菜单资源中的<item>
如果您使用appcompat-v7
操作栏后台,请将app:showAsAction="ifRoom"
添加到菜单资源中的<item>
(假设您设置了appcompat-v7
名称空间为app
)
但是,是否将项目显示为工具栏按钮或将其置于溢出中的决定取决于操作栏,而不是您。例如,如果您要求所有8个项目都是工具栏按钮,而这可能是10英寸平板电脑在横向上,那么在手机大小的屏幕上,所有这些都没有足够的空间。项目将是工具栏按钮;其余的将进入溢出。
答案 1 :(得分:0)
您必须删除所有创建菜单的方法(onCreateOptionsMenu
等)。
然后在工具栏的XML文件中,您必须在工具栏中添加一个自定义图标。例如:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<----YOUR CUSTOM ICON/BUTTON HERE---->
</android.support.v7.widget.Toolbar>
然后以编程方式,您可以在自定义图标/按钮上添加onClickListener
,然后您可以随意执行任何操作。
答案 2 :(得分:0)
转到文件夹菜单 - >主要然后删除项目设置然后你可以添加另一个项目(例如)
<item
android:id="@+id/action_refresh"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="@string/action_refresh"
android:icon="@drawable/refresh">
</item>
并在您的活动中:
onOptionsItemSelected(MenuItem item) // write your switch case to handle the clicked item.
允许该选项直接位于操作栏上的行是:
android:showAsAction="ifRoom"
答案 3 :(得分:0)
菜单在onCreateOptionsMenu方法中膨胀,并使用菜单文件夹中的菜单XML(默认)来检索项目。如果要在键代码菜单上执行操作,可以使用以下
@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
switch(keycode) {
case KeyEvent.KEYCODE_MENU:
Toast.makeText(getApplicationContext(), "Menu Pressed", Toast.LENGTH_LONG).show();
return true;
}
return super.onKeyDown(keycode, e);
}
如果你没有使用菜单项,你也可以继续去除onCreateOptionsMenu和onOptionsItemSelected方法,以及菜单XML,这取决于你自己