如何在工具栏中设置 MenuItem 文本而不是图标
How to set MenuItem text instead of icon in toolbar
我正在尝试将菜单末尾的文本设置为 menuItem,但我已尝试将 app:showAsAction="always|withText" 设置为菜单项,但文本不是显示到它的全长事实上它变得拥挤。
代码:
<?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">
<item
app:itemIconTint="@color/white"
android:id="@+id/next_btn"
android:title="@string/next"
app:showAsAction="always|withText"
/>
</menu>
工具栏:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay">
<LinearLayout
android:layout_centerInParent="true"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
>
<TextView
android:textSize="18sp"
android:layout_gravity="center_horizontal"
android:textColor="@color/white"
android:text="@string/recomended"
android:id="@+id/title_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_gravity="center_horizontal"
android:textColor="@color/white"
android:textSize="9sp"
android:text="@string/choose_your_friends"
android:id="@+id/title_secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
toolbar.inflateMenu(R.menu.next_menu);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.next_menu, menu);
return true;
}
它对我有用,在我的工具栏中我看到操作按钮只有文本 "today",没有图标:
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_иет"
android:orderInCategory="200"
android:title="today"
app:showAsAction="ifRoom" />
</menu>
尝试不使用 withText,仅使用 ifRoom:
app:showAsAction="ifRoom"
从菜单项中删除 icon
并设置 app:showAsAction="always"
以显示文本:
<?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"
>
<item
android:id="@+id/action_edit"
android:title="@string/edit"
app:showAsAction="always"
/>
</menu>
如果没有出现,可能是在白色背景上绘制了白色文本,您可以覆盖。在您的 AppTheme 样式中添加这些行:
<item name="actionMenuTextColor">@color/gray</item>
<item name="android:actionMenuTextColor">@color/gray</item>
如果这没有帮助,请参阅 How to display both icon and title of action inside ActionBar? 中的变体。
这对我有效
MenuItem menuitem1 = menu.add(Menu.NONE, 0, Menu.NONE, "注销");
menuitem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
我正在尝试将菜单末尾的文本设置为 menuItem,但我已尝试将 app:showAsAction="always|withText" 设置为菜单项,但文本不是显示到它的全长事实上它变得拥挤。
代码:
<?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">
<item
app:itemIconTint="@color/white"
android:id="@+id/next_btn"
android:title="@string/next"
app:showAsAction="always|withText"
/>
</menu>
工具栏:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay">
<LinearLayout
android:layout_centerInParent="true"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
>
<TextView
android:textSize="18sp"
android:layout_gravity="center_horizontal"
android:textColor="@color/white"
android:text="@string/recomended"
android:id="@+id/title_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_gravity="center_horizontal"
android:textColor="@color/white"
android:textSize="9sp"
android:text="@string/choose_your_friends"
android:id="@+id/title_secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
toolbar.inflateMenu(R.menu.next_menu);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.next_menu, menu);
return true;
}
它对我有用,在我的工具栏中我看到操作按钮只有文本 "today",没有图标:
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_иет"
android:orderInCategory="200"
android:title="today"
app:showAsAction="ifRoom" />
</menu>
尝试不使用 withText,仅使用 ifRoom:
app:showAsAction="ifRoom"
从菜单项中删除 icon
并设置 app:showAsAction="always"
以显示文本:
<?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"
>
<item
android:id="@+id/action_edit"
android:title="@string/edit"
app:showAsAction="always"
/>
</menu>
如果没有出现,可能是在白色背景上绘制了白色文本,您可以覆盖
<item name="actionMenuTextColor">@color/gray</item>
<item name="android:actionMenuTextColor">@color/gray</item>
如果这没有帮助,请参阅 How to display both icon and title of action inside ActionBar? 中的变体。
这对我有效
MenuItem menuitem1 = menu.add(Menu.NONE, 0, Menu.NONE, "注销");
menuitem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);