簡體   English   中英

Andriod材質工具欄不顯示字幕

[英]Andriod material toolbar isn't showing subtitle

我有一個屏幕,我必須在標題中顯示屏幕名稱,在副標題中顯示公司名稱。 但問題是虛擬設備上沒有顯示字幕,但它出現在 xml 編輯器中。

設備屏幕: 來自設備的屏幕

XML 編輯器的屏幕: XML 編輯器的屏幕

我像這樣以編程方式設置字幕:

when(screenName) {
            "loginFragment" -> {binding.ablMain.visibility = View.GONE}
            "routesFragment" -> {
                binding.ablMain.visibility = View.VISIBLE
                binding.mtbMain.title = "Available routes"
                binding.mtbMain.subtitle = "Company name"
            }
            "ordersListFragment" -> {
                binding.ablMain.visibility = View.VISIBLE
                binding.mtbMain.title = "Orders"
                binding.mtbMain.subtitle = null
            }
            "orderFragment" -> {
                binding.ablMain.visibility = View.VISIBLE
                binding.mtbMain.title = "Order"
                binding.mtbMain.subtitle = null
            }
        }

但是,使用mtbMain.title設置標題效果很好,但使用 subtitle 則不行。 我試圖刪除部分代碼,我設置字幕只是為了檢查它是否僅適用於 xml,但它也不能。

XML 代碼:

<androidx.drawerlayout.widget.DrawerLayout xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/dl_main"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/abl_main"
        style="@style/Widget.MaterialComponents.AppBarLayout.PrimarySurface"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"

        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/mtb_main"
            style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"

            android:background="@android:color/transparent"
            android:elevation="0dp"
            app:navigationIcon="@drawable/ic_baseline_menu_24"
            app:subtitle="text"
            app:subtitleTextAppearance="?attr/textAppearanceSubtitle1"
            app:title="Sample text" />

    </com.google.android.material.appbar.AppBarLayout>...

如何正確設置字幕?

Android 工具欄具有設置subTitle的內置功能。

supportActionBar?.setSubtitle(R.string.sub_title_string)

還要確保不要在 Manifest 中針對該 Activity 使用 NoActionBar 主題。

如果您使用的是自定義工具欄,則不要將 null 傳遞給以下方法

binding.mtbMain.subtitle = null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM