Как изменить текст заголовка панели инструментов по умолчанию с @string / app_name на «», но только изменение styles.xml ?

#android #styles #toolbar #title

#Android #стили #панель инструментов #Название

Вопрос:

У меня есть приложение с

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
 

В некоторых действиях я добавляю панель инструментов в xml вручную, которая по умолчанию содержит текст заголовка @string / app_name.
Я знаю, что могу вызвать setDisplayShowTitleEnabled(false) или что-то в этом роде, но мне это не подходит.
Мне нужен другой способ, например, изменить что-то в AppTheme, чтобы текст заголовка был изменен во всех приложениях по умолчанию.
Как это сделать?

Панель инструментов, которую я добавил:

 <androidx.appcompat.widget.Toolbar
    android:id="@ id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:background="@color/colorAccent"
    app:navigationIcon="@drawable/ic_default_nav_icon_white" />
 

Ответ №1:

Вы можете попробовать создать новый файл макета и добавить в него код панели инструментов. Смотрите ниже, это layout_app_bar.xml Где вы можете указать название панели инструментов.

 <?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@ id/toolbar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorPrimary"
android:elevation="4dp"
app:title="WhateverName"
app:titleTextAppearance="@style/AppbarTitle"
app:titleTextColor="@color/colorWhite" />
 

Затем в свои действия вы можете включить файл макета, как и любой другой тег. вы можете использовать этот единый файл макета панели инструментов во всех действиях.

 <LinearLayout>
<include
    android:id="@ id/appbar"
    layout="@layout/layout_app_bar" />
</LinearLayout>
 

Я надеюсь, что это помогло вам.
Счастливого кодирования!!!

Комментарии:

1. Да, вы правы, я пробовал именно так. Но проблема в том, что если я установлю атрибут ‘title’ на панели инструментов в xml на «» (пустая строка), Android фактически вместо пустой строки устанавливает @string/app_name . Странное поведение.