Обновление: последний шаблон ActionBar (заголовок):
К вашему сведению, ActionBar был представлен на уровне API 11. ActionBar - это оконная функция в верхней части действия, которая может отображать заголовок действия , режимы навигации и другие интерактивные элементы, такие как поиск.
Я точно помню, как настроить строку заголовка и сделать ее согласованной с помощью приложения. Поэтому я могу сравнить с предыдущими днями и перечислить некоторые преимущества использования ActionBar:
- Он предлагает вашим пользователям знакомый интерфейс между приложениями, который система изящно адаптирует для различных конфигураций экрана.
- Разработчикам не нужно писать много кода для отображения заголовка действия, значков и режимов навигации, потому что ActionBar уже готов с абстракцией верхнего уровня.
Например:
=> Нормальный способ,
getActionBar().setTitle("Hello world App");
getSupportActionBar().setTitle("Hello world App"); // provide compatibility to all the versions
=> Настройка панели действий,
Например:
@Override
public void setActionBar(String heading) {
// TODO Auto-generated method stub
com.actionbarsherlock.app.ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray)));
actionBar.setTitle(heading);
actionBar.show();
}
Стилизация панели действий:
Панель ActionBar предоставляет вам простой и привычный внешний вид, режимы навигации и другие быстрые действия. Но это не значит, что он выглядит одинаково в каждом приложении. Вы можете настроить его в соответствии с вашим пользовательским интерфейсом и требованиями к дизайну. Вы просто должны определить и написать стили и темы.
Узнайте больше на странице : Стиль панели действий
И если вы хотите сгенерировать стили для ActionBar, вам поможет этот инструмент Style Generator .
================================================== ===============================
Старый: Ранние дни:
=> Нормальный способ,
Вы можете изменить заголовок каждого экрана (например, активность), установив их Android:label
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
=> Пользовательский - заголовок - строка
Но если вы хотите настроить строку заголовка по-своему, то есть Want to put Image icon and custom-text
, следующий код работает для меня:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
titlebar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="400dp"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView android:id="@+id/ImageView01"
android:layout_width="57dp"
android:layout_height="wrap_content"
android:background="@drawable/icon1"/>
<TextView
android:id="@+id/myTitle"
android:text="This is my new title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/titletextcolor"
/>
</LinearLayout>
TitleBar.java
public class TitleBar extends Activity {
@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);
}
}
}
strings.xml
Файл strings.xml определяется в values
папке.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Set_Text_TitleBar!</string>
<string name="app_name">Set_Text_TitleBar</string>
<color name="titlebackgroundcolor">#3232CD</color>
<color name="titletextcolor">#FFFF00</color>
</resources>
Вы можете определить метку для каждого действия в файле манифеста.
Нормальное определение деятельности выглядит так:
Где текст заголовка должен быть заменен идентификатором строкового ресурса для этого действия.
Вы также можете установить текст заголовка из кода, если вы хотите установить его динамически.
с помощью этой строки заголовок устанавливается для города определенного адреса в методе oncreate моей деятельности.
источник
Вы можете определить свой заголовок программно, используя
setTitle
внутри вашегоActivity
, этот метод может принятьString
или идентификатор, определенный в вашемvalues/strings.xml
файле. Пример:источник
Мы можем изменить заголовок ActionBar одним из двух способов:
В Манифесте: в файле манифеста установите метку каждого действия.
В коде: в коде вызовите метод setTitle () с аргументом String или id String.
источник
Внутри обратного вызова Activity.onCreate () или в другом месте, где вам нужно изменить заголовок:
источник
попробуйте сделать это ...
меня устраивает
источник
Немного старше, но с той же проблемой. Я сделал это так:
strings.xml
<string name="title_awesome_app">My Awesome App</string>
и убедитесь, что вы установили это в вашем AndroidManifest.xml :
это легко, и вам не нужно беспокоиться о нулевых ссылках и прочем.
источник
источник
Самый простой способ изменить имя панели действий - перейти на AndroidManifest.xml и ввести этот код.
источник
Вы просто добавляете этот код в
onCreate
метод.источник
Для получения дополнительной информации проверьте эту ссылку:
http://android--code.blogspot.in/2015/09/android-how-to-change-actionbar-title_21.html
источник
Лучший способ изменить имя панели действий - перейти на AndroidManifest.xml и ввести этот код.
источник
Котлин
Вы можете сделать это программно в Kotlin таким образом. Вы просто игнорируете это, если "supportActionBar" является нулем :
Или вот так. Выдает исключение, если "supportActionBar" равно нулю.
источник
Самый простой способ - позвонить,
this.setTitle("...")
если вы находитесь в игре. А если вы во фрагменте, просто позвонитеgetActivity().setTitle("...")
;Этот способ позволит вам изменить заголовок в любое время, не нужно вызывать его раньше
setContentView(R.layout.activity_test)
;источник
Для будущих разработчиков, которые используют AndroidX и архитектурный компонент навигации .
Вместо того чтобы устанавливать заголовок панели инструментов с помощью одного из приведенных выше решений, что может быть очень болезненным, если вы хотите установить его динамически при изменении заднего стека, вы можете установить заполнитель для заголовка фрагмента на графике навигации, как показано ниже:
Значение заполнителя должно быть предоставлено с помощью
FragmentDirections
(через метод действия).Затем его заменяют в заголовке и показывают как
Hello World
(когдаplaceholder = "World"
).источник
getSupportActionBar().setTitle("title");
источник