Как изменить заголовок и значок панели задач Android
Я пытаюсь сделать что-то на ActionBar в Android.
Я уже добавил новые элементы в правой части панели действий.
Как изменить левую часть панели действий? Я хочу изменить значок и текст, и я хочу добавить кнопку "Назад" в панели действий для других экранов
![Android Action Bar]()
Ответы
Ответ 1
Это очень просто сделать
Если вы хотите изменить его в коде, вызовите:
setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);
И установите значения, которые вам нравятся.
Или в XML файле манифеста Android:
<activity android:name=".MyActivity"
android:icon="@drawable/my_icon"
android:label="My new title" />
Чтобы включить кнопку "Назад" в вашем приложении, используйте:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
Код должен быть помещен в ваш onCreate
так, чтобы изменение метки/значка было прозрачным для пользователя, но на самом деле его можно назвать где угодно во время жизненного цикла деятельности.
Ответ 2
Чтобы сделать один значок доступным для всех ваших баров действий, вы можете сделать это в своем манифесте Android.
<application
android:logo="@drawable/Image">
...
</application>
Ответ 3
Если вы хотите изменить заголовок панели действий, просто укажите следующий 1 строковый код в onCreate() вашей активности
getActionBar().setTitle("Test");
Ответ 4
Вы можете изменить значок в своем файле, добавив любой значок, который вы хотите в соответствующие доступные папки, а затем измените эту строку в файле AndroidManifest.xml:
android:icon="@drawable/ic_launcher"
чтобы соответствовать любому имени вашего значка. Или поставьте свой значок как ic_launcher, если они - тот же самый значок. Что касается того, что он говорит, добавьте или измените любые строки, соответствующие указанному в файле res/values /strings.xml. Затем, снова в вашем файле AndroidManifest.xml, измените эту строку:
android:label="@string/app_name"
независимо от того, какая строка у вас есть. Вам нужно будет сделать это для приложения в целом, и в зависимости от того, что вы хотите, но строки одинаковы.
Надеюсь, что это поможет.
Ответ 5
Вам просто нужно добавить эти 3 строки кода. Замените значок своим собственным значком. Если вы хотите сгенерировать значки, используйте this
getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
Ответ 6
Для этого вы можете сделать это двумя способами: XML или Java. Смотрите здесь: Как изменить текст на панели действий
Итак:
XML:
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
Java:
public class TitleBar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if ( customTitleSupported ) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if ( myTitleText != null ) {
myTitleText.setText("NEW TITLE");
// user can also set color using "Color" and then "Color value constant"
// myTitleText.setBackgroundColor(Color.GREEN);
}
}
}
Ответ 7
Для набора Title: getActionBar(). setTitle ( "Title" );
Значок set: getActionBar(). setIcon (R.drawable.YOUR_ICON_NAME);
Ответ 8
В Android 5.0 руководство по дизайну материалов препятствует использованию значка в actionBar
чтобы включить его, добавьте следующий код
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
кредит принадлежит автору этой статьи
Ответ 9
Я использовал следующий вызов внутри onNavigationItemSelected
:
HomeActivity.this.setTitle(item.getTitle());
Ответ 10
Заголовок панели действий по умолчанию будет использовать метку текущей активности, но вы также можете установить ее программно с помощью ActionBar.setTitle()
.
Чтобы реализовать функцию "Назад" (точнее, "Вверх" ), о которой вы говорите, прочитайте раздел "Использование значка приложения для навигации" в Руководство разработчика по Action Bar.
Наконец, чтобы изменить значок, руководство также охватывает это. Короче говоря, панель действий отобразит изображение, представленное в android:icon
в вашем манифесте application
или activity
, если оно есть. Типичная практика заключается в создании значка приложения (во всех различных плотностях, которые вам понадобятся) с именем ic_launcher.png
, и поместите его в свои каталоги drawable-*
.
Ответ 11
Я получил ошибку non-static method setTitle(CharSequence) cannot be referenced from a static context
, потому что использовал setTitle()
в статическом классе PlaceholderFragment. Я решил это, используя getActivity().getActionBar().setTitle("new title");