Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách lấy subtitle của Action Bar trên Android

Giới thiệu

Bài viết hướng dẫn cách lấy phụ đề (subtitle) của Action Bar/App Bar bằng getSupportActionBar().getSubtitle().

Các bước thực hiện

Bước 1: Tạo project mới

Android Studio → File → New Project → Empty Activity.

Bước 2: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="16dp">

    <TextView
        android:id="@+id/tvSubtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Subtitle: "
        android:textSize="18sp" />

</LinearLayout>

Bước 3: Code (MainActivity.kt)

package com.example.actionbarsubtitle

import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Set subtitle
        supportActionBar?.subtitle = "Sairam - Android Developer"

        // Lấy subtitle
        val subtitle = supportActionBar?.subtitle.toString()
        tvSubtitle.text = "Action Bar Subtitle: $subtitle"

        println("Subtitle: $subtitle")
    }
}

Các phương thức liên quan

Phương thức Chức năng
getSubtitle() Lấy subtitle hiện tại (CharSequence)
setSubtitle(CharSequence) Set subtitle
setSubtitle(@StringRes int) Set subtitle từ string resource
setDisplayShowTitleEnabled(false) Ẩn cả title và subtitle

Ví dụ với Toolbar tùy chỉnh

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:subtitle="Custom Subtitle"
    app:subtitleTextColor="@android:color/white"
    app:subtitleTextAppearance="@style/MySubtitleStyle" />
// Activity
setSupportActionBar(toolbar)
val subtitle = toolbar.subtitle.toString()
// Hoặc
val subtitle = supportActionBar?.subtitle.toString()

Lưu ý

  • Phải gọi setContentView() trước khi truy cập supportActionBar.
  • Nếu dùng Theme NoActionBar, supportActionBar sẽ null.
  • Subtitle thường dùng cho: breadcrumb, version, status, user role, v.v.
  • Có thể style subtitle qua theme: actionBarSubtitleTextStyle.