Nhìn chung, Hệ điều hành Android tận dụng “chủ đề” để cho phép các nhà phát triển ứng dụng áp dụng toàn cầu một tập hợp các thông số tạo kiểu phần tử giao diện người dùng cho toàn bộ các ứng dụng Android hoặc cách khác, cho một lớp con Hoạt động.
Vì vậy, có ba "chủ đề hệ thống" của hệ điều hành Android chính mà bạn có thể chỉ định trong tệp XML Manifest trên Android của mình khi bạn đang phát triển ứng dụng cho Phiên bản 3.0 và các phiên bản mới hơn
Tôi đang tham khảo thư viện hỗ trợ (APPCOMPAT) ở đây: - Ba chủ đề là 1. Chủ đề AppCompat Light (Theme.AppCompat.Light)
- AppCompat Dark Theme (Theme.AppCompat),
- Và sự kết hợp giữa hai thứ này, AppCompat Light Theme với Darker ActionBar. (Theme.AppCompat.Light.DarkActionBar)
AndroidManifest.xml và xem thẻ, chủ đề android được đề cập là: - android: theme = "@ style / AppTheme"
Mở Styles.xml và chúng tôi có chủ đề ứng dụng cơ bản được khai báo ở đó: -
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
Chúng ta cần ghi đè các phần tử chủ đề mẹ này để tạo kiểu cho thanh tác vụ.
ActionBar với nền màu khác nhau: -
Để thực hiện việc này, chúng ta cần tạo một kiểu MyActionBar mới (bạn có thể đặt bất kỳ tên nào) với tham chiếu gốc là @ style / Widget.AppCompat.Light.ActionBar.Solid.Inverse chứa các đặc điểm kiểu cho phần tử Android ActionBar UI. Vì vậy, định nghĩa sẽ là
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
</style>
Và định nghĩa này chúng ta cần tham chiếu trong AppTheme của mình, trỏ đến kiểu ActionBar bị ghi đè là--
@ style / MyActionBar
Thay đổi màu văn bản của thanh tiêu đề (ví dụ: từ đen sang trắng): -
Bây giờ để thay đổi màu văn bản tiêu đề, chúng ta cần ghi đè tham chiếu gốc cha = "@ style / TextAppearance.AppCompat.Widget.ActionBar.Title">
Vì vậy, định nghĩa phong cách sẽ là
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
Chúng tôi sẽ tham chiếu định nghĩa kiểu này bên trong định nghĩa kiểu MyActionBar , vì sửa đổi TitleTextStyle là phần tử con của phần tử giao diện người dùng hệ điều hành mẹ ActionBar. Vì vậy, định nghĩa cuối cùng của phần tử kiểu MyActionBar sẽ là
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
VẬY, đây là Styles.xml cuối cùng
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/red</item>
<item name="titleTextStyle">@style/MyActionBarTitle</item>
</style>
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
</resources>
Để biết thêm tùy chọn ActionBar Kiểu menu, hãy tham khảo liên kết này