Элемент Android ActionBar с текстом

170
11

Я хочу разместить элемент в панели действий, который имеет только текст. Я использую ActionBarSherlock. Как я могу это сделать. Один из них определяет значок с текстом. Я бы не хотел этого делать. Возможно ли иметь текстовый элемент из моих строк ресурсов?

спросил(а) 2021-01-25T17:09:04+03:00 5 месяцев назад
1
Решение
198

Просто не определяйте


android:icon

в файле menu.xml для этого элемента.

ответил(а) 2021-01-25T17:09:04+03:00 5 месяцев назад
147

Просто подумал об этом, не забудьте добавить android: showAsAction = "always"

<item 
android:id="@+id/menu_item"
android:showAsAction="always"
android:title="@string/menu_title" />

ответил(а) 2021-01-25T17:09:04+03:00 5 месяцев назад
108

Для справки в будущем я обнаружил, что необходимо указать атрибут showAsAction в пространстве имен http://schemas.android.com/apk/res/android и в пространстве имен http://schemas.android.com/apk/res-auto, чтобы обеспечить совместимость с различными версиями Android. Таким образом, ваш файл menu.xml должен выглядеть так:


<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="net.taptools.android.sportshistory.PlayerProfileActivity" >
<item android:id="@+id/action_settings"
android:title="Statistics"
app:showAsAction="always"
android:showAsAction="always"/>
</menu>

ответил(а) 2021-01-25T17:09:04+03:00 5 месяцев назад
45

если вы хотите, чтобы это была кнопка, вы можете создать меню:


<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="net.taptools.android.sportshistory.PlayerProfileActivity" >
<item android:id="@+id/action_settings"
android:title="Statistics"
app:showAsAction="always"
android:showAsAction="always"/>
</menu>

Но если вы хотите использовать только TextView, вы можете использовать:


@Override
public boolean onCreateOptionsMenu(Menu menu) {
TextView tv = new TextView(this);
tv.setText(getString(R.string.matchmacking)+" ");
tv.setTextColor(getResources().getColor(R.color.WHITE));
tv.setOnClickListener(this);
tv.setPadding(5, 0, 5, 0);
tv.setTypeface(null, Typeface.BOLD);
tv.setTextSize(14);
menu.add(0, FILTER_ID, 1, R.string.matchmacking).setActionView(tv).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}

Это просто делает TextView.

ответил(а) 2021-01-25T17:09:04+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема