Ở dạng cơ bản nhất, thanh thao tác hiển thị tiêu đề cho hoạt động ở một bên và trình đơn mục bổ sung ở bên còn lại. Ngay cả ở dạng cơ bản này, thanh ứng dụng vẫn cung cấp thông tin hữu ích cho người dùng và mang lại cho ứng dụng Android một giao diện nhất quán.
![Hình ảnh hiển thị thanh ứng dụng trong ứng dụng Now in Android](https://developer.android.google.cn/static/images/ui/notifications/actions_actionbar.png?authuser=5&hl=vi)
Tất cả hoạt động sử dụng giao diện mặc định đều có ActionBar
là thanh ứng dụng. Các tính năng của thanh ứng dụng được thêm vào ActionBar
gốc trong nhiều bản phát hành Android. Do đó, ActionBar
gốc sẽ hoạt động theo cách khác nhau tuỳ thuộc vào phiên bản Android mà thiết bị đang sử dụng.
Mặt khác, các tính năng được thêm vào phiên bản Toolbar
của thư viện AndroidX AppCompat, nghĩa là các tính năng đó có sẵn trên các thiết bị sử dụng thư viện AndroidX.
Hãy sử dụng lớp Toolbar
của thư viện AndroidX để triển khai thanh ứng dụng của hoạt động vì lý do này. Việc sử dụng thanh công cụ của thư viện AndroidX giúp hành vi của ứng dụng nhất quán trên nhiều loại thiết bị nhất.
Thêm Thanh công cụ vào một hoạt động
Các bước sau mô tả cách thiết lậpToolbar
làm thanh ứng dụng của hoạt động:
- Thêm thư viện AndroidX vào dự án của bạn, như mô tả trong bài viết Tổng quan về AndroidX.
- Đảm bảo hoạt động mở rộng
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- Trong tệp kê khai ứng dụng, hãy đặt phần tử
<application>
để sử dụng một trong các giao diệnNoActionBar
của AppCompat, như trong ví dụ sau. Khi bạn sử dụng một trong những giao diện này, ứng dụng sẽ không thể dùng lớpActionBar
gốc để cung cấp thanh ứng dụng.<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Thêm
Toolbar
vào bố cục của hoạt động. Ví dụ: mã bố cục sau đây thêm mộtToolbar
và làm cho nó trông có dạng nổi phía trên hoạt động:<androidx.appcompat.widget.Toolbar android:id="@+id/my_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Xem thông số kỹ thuật của Material Design để biết các đề xuất về độ cao của thanh ứng dụng.
Đặt thanh công cụ ở đầu bố cục của hoạt động vì bạn đang sử dụng thanh công cụ này làm thanh ứng dụng.
- Trong phương thức
onCreate()
của hoạt động, hãy gọi phương thứcsetSupportActionBar()
của hoạt động và chuyển thanh công cụ của hoạt động, như minh hoạ trong ví dụ sau. Phương thức này đặt thanh công cụ làm thanh ứng dụng cho hoạt động.Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // The Toolbar defined in the layout has the id "my_toolbar". setSupportActionBar(findViewById(R.id.my_toolbar)) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); }
Ứng dụng của bạn hiện đã có thanh thao tác cơ bản. Theo mặc định, thanh thao tác chứa tên của ứng dụng và trình đơn mục bổ sung, ban đầu chứa mục Settings (Cài đặt). Bạn có thể thêm các thao tác khác vào thanh thao tác và trình đơn mục bổ sung, như mô tả trong phần Thêm và xử lý thao tác.
Sử dụng các phương thức tiện ích trên thanh ứng dụng
Sau khi đặt thanh công cụ làm thanh ứng dụng của một hoạt động, bạn có thể truy cập vào các phương thức tiện ích do lớp ActionBar
của thư viện AndroidX cung cấp. Phương pháp này cho phép bạn thực hiện những việc hữu ích như ẩn và hiện thanh ứng dụng.
Để sử dụng các phương thức tiện ích ActionBar
, hãy gọi phương thức getSupportActionBar()
của hoạt động. Phương thức này trả về một tham chiếu đến một đối tượng ActionBar
của AppCompat.
Sau khi có thông tin tham chiếu đó, bạn có thể gọi bất kỳ phương thức ActionBar
nào để điều chỉnh thanh ứng dụng. Ví dụ: để ẩn thanh ứng dụng, hãy gọi ActionBar.hide()
.