工具栏标题和副标题显示的字体大小错误

Wrong font size showing for toolbar title and subtitle

为我的工具栏实现标题和副标题后,由于某种原因使用了错误的字体大小。需要做什么才能解决这个问题?

Java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar customToolbar = (Toolbar)findViewById(R.id.toolbarC);
        customToolbar.setBackgroundColor(Color.parseColor("#E21836"));

        TextView mTitle = (TextView) this.findViewById(R.id.toolbar_title);
        mTitle.setText("Hello World");
        mTitle.setSingleLine(true);

        TextView mSubtitle = (TextView) this.findViewById(R.id.toolbar_subtitle);
        mSubtitle.setText("Hello World");
        mSubtitle.setSingleLine(true);
    }
}

toolbarC.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbarC"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <LinearLayout
        android:id="@+id/header_text_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#00FFFFFF"
        android:gravity="center_vertical"
        android:orientation="vertical">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"/>

        <TextView
            android:id="@+id/toolbar_subtitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"/>
    </LinearLayout>
</android.support.v7.widget.Toolbar>

将工具栏的高度增加到 ?actionBarSize

为每个 textView 添加 textSize。像这样尝试

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_2lines"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
    android:id="@+id/header_text_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00FFFFFF"
    android:gravity="center_vertical"
    android:orientation="vertical">

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"/>

    <TextView
        android:id="@+id/toolbar_subtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"/>
</LinearLayout>

添加这一行,可能是使用 app_name 作为标题 getSupportActionBar().setDisplayShowTitleEnabled(false); 并尝试使用 dp 而不是 sp

找到问题并解决了。我的项目中有一个隐藏的工具栏文本视图重复项,重复的标题和副标题是在部署我的应用程序时向我显示的内容。