Как настроить текст заголовка активности Android

Я пытаюсь изменить размер текста заголовка, потому что он меняется на альбомном экране. Я обнаружил, что изменение размера в SP может решить проблему. Так что я сделал это...

добавлен стиль в style.xml

<style name="Toolbar.TitleText"
    parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">30sp</item>
</style>

а затем в app_bar_main.xml под android.support.v7.widget.Toolbar я добавил эту строку

app:titleTextAppearance="@style/Toolbar.TitleText"

Теперь он дает желаемый результат в основном действии, но все остальные действия одинаковы. У меня есть около 10 действий в моем приложении. Как я могу изменить название всех действий? Пожалуйста помоги. Заранее спасибо.

мой manifest.xml

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/title_main"
        android:theme="@style/AppTheme.NoActionBar" />
    <activity
        android:name=".splash"
        android:screenOrientation="portrait"
        android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".ch_1"
        android:label="@string/ch_1" />
    <activity
        android:name=".ch_2"
        android:label="@string/ch_2" />
    <activity
        android:name=".ch_3"
        android:label="@string/ch_3" />
    <activity
        android:name=".ch_4"
        android:label="@string/ch_4" />
    <activity
        android:name=".ch_5"
        android:label="@string/ch_5" />
    <activity
        android:name=".ch_6"
        android:label="@string/ch_6" />
    <activity
        android:name=".ch_7"
        android:label="@string/ch_7" />
    <activity
        android:name=".ch_8"
        android:label="@string/ch_8" />
    <activity
        android:name=".ch_9"
        android:label="@string/ch_9" />
    <activity
        android:name=".ch_10"
        android:label="@string/ch_10" />
    <activity
        android:name=".ch_11"
        android:label="@string/ch_11" />
    <activity android:name=".ch_12"
        android:label="@string/ch_12" />
    <activity
        android:name=".ch_13"
        android:label="@string/ch_13" />
    <activity
        android:name=".ch_14"
        android:label="@string/ch_14" />
    <activity
        android:name=".ch_15"
        android:label="@string/ch_15" />
    <activity android:name=".view" />
</application>

мой style.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/white</item>
    <item name="colorButtonNormal">@color/colorPrimary</item>
    <item name="android:textAppearanceButton">@style/TextAppearance.AppCompat.Button.Custom</item>
</style>


<style name="Toolbar.TitleText"
    parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">24sp</item>
</style>


<style name="TextAppearance.AppCompat.Button.Custom">
    <item name="android:textColor">@color/white</item>
    <item name="android:textSize">28sp</item>
</style>


<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.ActionButton">
    <item name="android:minWidth">0dip</item>
    <item name="android:paddingLeft">0dip</item>
    <item name="android:paddingRight">0dip</item>
</style>


<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/splash</item>
</style>


person Hussain    schedule 07.09.2017    source источник
comment
добавьте свой манифест и файл style.xml, пожалуйста   -  person Pier Giorgio Misley    schedule 07.09.2017
comment
привет @PierGiorgioMisley спасибо за ваш ответ. Я добавил manifest.xml и style.xml в основные запросы. пожалуйста, проверьте это там.   -  person Hussain    schedule 07.09.2017
comment
хорошо, добавьте также XML-код основного действия (работающего правильно) и другого действия, которое не работает должным образом. (вы можете избежать бесполезных вещей, просто добавьте соответствующую часть, содержащую панель инструментов или взаимодействующую с ней :)   -  person Pier Giorgio Misley    schedule 07.09.2017
comment
мой app_bar_main.xml с использованием тега include. из основного содержания. app_bar_main содержит строки кода ‹android.support.v7.widget.Toolbar android:id=@+id/toolbar android:layout_width=match_parent android:layout_height=?attr/actionBarSize android:background=?attr/colorPrimary app:popupTheme= Приложение @style/AppTheme.PopupOverlay:titleTextAppearance=@style/Toolbar.TitleText/› работает нормально. но все остальные макеты не имеют этого кода.   -  person Hussain    schedule 07.09.2017


Ответы (2)


Для этого вы можете использовать тег <include>. Именно так

<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:orientation="vertical"
    tools:context="com.dzq.aprivate.view.activity.MainActivity">

    <include layout="@layout/lay_actionbar"/>

    <FrameLayout
        android:id="@+id/lay_container"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp"/>

    <include layout="@layout/lay_main_bottom"/>
</LinearLayout>

Используйте <include layout="@layout/toolbar_header"/> в каждой деятельности, которую вы хотите.

person 杜咸鱼    schedule 07.09.2017

Хорошо, я решил проблему. Предыдущий код не работал для других макетов, потому что Activity_main.xml использовал панель инструментов вместо панели действий, поэтому мне пришлось написать еще один стиль для панели действий. Я добавил этот стиль..

<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
    <item name="titleTextStyle">@style/MyTitleTextStyle</item>
</style>

<style name="MyTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textSize">24sp</item>
</style>

а затем добавил элемент в AppTheme следующим образом.

<item name="actionBarStyle">@style/MyActionBar</item>

и сейчас работает нормально. Спасибо всем за ответ.

person Hussain    schedule 07.09.2017