Я пытаюсь создать простое приложение, используя библиотеку android-support-v7: 21.
Фрагменты
кода:
MainActivity.java
public class MainActivity extends ActionBarActivity {
Toolbar mActionBarToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);
}
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_actionbar"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:fitsSystemWindows="true" />
</LinearLayout>
Но вместо «Мой заголовок» на Панели инструментов% отображается имя приложения%.
Похоже, setTitle
метод не имеет никакого эффекта.
Я хотел бы показать «Мой титул».
UPD:
раньше styles.xml
было:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowActionBar">false</item>
</style>
Итак, я подумал, что actionbar не используется. Я добавляю NoActionBar
в стиль parent:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionBar">false</item>
</style>
Но проблема не решена.
android
toolbar
android-support-library
krossovochkin
источник
источник
Ответы:
Нашел решение:
Вместо того:
Я использовал:
И это работает.
источник
getSupportActionBar().setTitle("My title");
может создаватьsetSupportActionBar(mToolbar)
конечно, вы получите нулевое исключение, но если вы вызвали его, просто проигнорируйте это сообщение. Просто прочитайте - developer.android.com/training/appbar/setting-up.htmlЕсли вы хотите настроить заголовок через панель инструментов через некоторое время после установки SupportActionBar, прочтите это.
Внутренняя реализация библиотеки поддержки просто проверяет, имеет ли панель инструментов заголовок (не ноль) в момент установки SupportActionBar. Если есть, то этот заголовок будет использоваться вместо заголовка окна. Затем вы можете установить фиктивный заголовок при загрузке реального заголовка.
потом...
источник
this.setTitle("Title")
гдеthis
- ссылка на вид деятельности.Приведенный выше ответ полностью верен, но не работает для меня.
Я решил свою проблему с помощью следующих вещей.
На самом деле мой XML такой:
Я перепробовал все варианты, и в конце концов я только что удалил,
CollapsingToolbarLayout
потому что мне не нужно использовать в этом конкретном случае,XML
так что мой окончательный XML выглядит так:Теперь вы должны использовать
setTitle()
как ответ выше:Теперь если вы хотите использовать
CollapsingToolbarLayout
иToolbar
вместе , то вы должны использоватьsetTitle()
вCollapsingToolbarLayout
Пусть это поможет вам. Спасибо.
источник
CollapsingToolbarLayout
CollapsingToolbarLayout
?Просто вы можете изменить любое имя активности с помощью
источник
title = "Title"
в Котлине или, может быть,this.setTitle("Title")
на Яве.Попробуйте это, вы можете определить заголовок непосредственно в XML:
источник
Чтобы установить заголовок для каждого заголовка фрагмента Navbar
источник
Попробуйте это .. этот метод работает для меня .. !! надеюсь, что это может помочь кому-то .. !!
Чтобы отобразить логотип на панели инструментов, попробуйте следующий фрагмент. // Устанавливаем рисование
Дайте мне знать результат.
источник
источник
См. Https://code.google.com/p/android/issues/detail?id=77763 . Видимо, это должно работать так. После вызова вызова
setSupportActionBar()
метода делегат ActionBar отвечает за направление вызова в правильное представление.источник
Я пытался переименовать панель инструментов из фрагмента
Это помогло мне, я надеюсь помочь кому-то еще
Скриншот:
источник
Это не только о
.setTitle
другие методы поддержки панели инструментов (Appcompat v7)
onCreate
работают только сgetSupportActionBar().method()
и не работать с
mToolbar.method()
Примеры:
хотя следующие методы работы штрафа не
getSupportActionBar()
вonCreate
Проблема только с
onCreate
событием, вы все равно можете использоватьmToolbar.setTitle()
позже, вместо того, чтобы раздражатьgetSupportActionBar().setTitle()
, например, если вы добавите это вonCreate
него будет работать (потому что он будет выполнен позже, послеonCreate
)Я предпочитаю использовать это решение https://stackoverflow.com/a/35430590/4548520, чем https://stackoverflow.com/a/26506858/4548520, потому что если вы меняете заголовок много раз (в разных функциях), его удобнее использовать
mToolbar.setTitle()
чем длиннее,getSupportActionBar().setTitle()
и вы не увидите раздражающее уведомление о нулевом исключении, как сgetSupportActionBar().setTitle()
источник
Для тех, кому нужно настроить заголовок через панель инструментов через некоторое время после установки SupportActionBar (@sorianiv) и вы находитесь
Toolbar
внутри aCollapsingToolbarLayout
, прочитайте это:Тогда позже,
источник
Заголовок приложения не будет отображаться в качестве заголовка по умолчанию для каждого действия, вы можете вставить разные заголовки для каждого действия. В вашем файле активности ниже onCreate просто вставьте одну строку, чтобы установить заголовок,
Просто измените текст «Ваше название здесь» на ваш текст.
источник
Просто используйте это в своем адаптере, где MainActivity - это ваша AppCompactActivity. Звони из любой точки.
источник
Я сделал это с помощью -
источник
post
если вы меняете заголовок в потоке пользовательского интерфейса, что, я думаю, составляет 90% случаев.Если вы используете
CollapsibleToolbarLayout
вместе с,Toolbar
то вам нужно будет установить заголовок в обоих макетахустановить панель инструментов как панель действий в
onCreate
методеПозже просто обновите заголовок панели инструментов, используя
setTitle
методисточник
Попробуй это:
XML-код
Java-код
источник
Если ваша цель - установить статическую строку на панели инструментов, самый простой способ сделать это - просто установить метку активности в AndroidManifest.xml:
Панель инструментов получит эту строку без кода. (работает для меня с библиотеками v27.)
источник
У меня странное поведение, которое может вам помочь.
Это работает, но не влияет только на onCreate:
Попробуйте использовать это в onCreate:
источник
Чтобы изменить заголовок для каждого отдельного действия
источник
источник
Хотя это не относится непосредственно к этой конкретной настройке, я обнаружил, что удаление «CollapsingToolbarLayout» из моего XML, который оборачивал мою панель инструментов внутри AppBarLayout, заставляло все работать.
Итак, это:
Вместо этого:
Затем я устанавливаю заголовок в onCreate действия, прежде чем вызывается setSupportActionBar ().
источник
Это можно сделать, установив
android:label
атрибут вашей активности вAndroidManifest.xml
файле:И затем добавьте эту строку в onCreate ():
источник
Убедитесь, что вы добавили эту опцию:
источник
Ответ находится в документации (которую вы можете найти здесь ):
Это решение, которое вы на самом деле нашли. Просто подумал дать ссылку на официальную документацию (которую, видимо, мало кто читает).
источник
В Kotlin вы можете сделать это:
источник
Это происходит потому, что вы используете и панель инструментов, и панель действий. Теперь, когда вы хотите использовать панель инструментов в качестве панели действий, первое, что вам нужно сделать, это отключить панель действий, предоставляемую декором.
Самый простой способ - расширить тему
Theme.AppCompat.NoActionBar
.источник