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ậpsupportActionBar. - Nếu dùng Theme NoActionBar,
supportActionBarsẽ null. - Subtitle thường dùng cho: breadcrumb, version, status, user role, v.v.
- Có thể style subtitle qua theme:
actionBarSubtitleTextStyle.