最基本的動作列會在其中一側顯示活動的標題,另一側則顯示溢位選單。即使是這種基本形式,應用程式列也能為使用者提供實用資訊,並讓 Android 應用程式呈現一致的外觀和風格。
使用預設主題的所有活動都會將 ActionBar 設為應用程式列。應用程式列功能會新增至各種 Android 版本的原生 ActionBar。因此,原生 ActionBar 的行為會因裝置使用的 Android 版本而異。
另一方面,AndroidX AppCompat 程式庫的 Toolbar 版本會新增功能,因此使用 AndroidX 程式庫的裝置也能使用這些功能。
因此,請使用 AndroidX 程式庫的 Toolbar 類別,實作活動的應用程式列。使用 AndroidX 程式庫的工具列,可確保應用程式在各種裝置上都能維持一致的行為。
在活動中新增工具列
下列步驟說明如何將Toolbar 設為活動的應用程式列:
- 如「AndroidX 總覽」一文所述,將 AndroidX 程式庫新增至專案。
- 請確認活動擴充
AppCompatActivity:Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- 在應用程式資訊清單中,將
<application>元素設為使用 AppCompat 的NoActionBar主題,如下列範例所示。使用其中一個主題可防止應用程式使用原生ActionBar類別提供應用程式列。<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- 在活動的版面配置中加入
Toolbar。舉例來說,下列版面配置程式碼會新增Toolbar,並讓它顯示在活動上方:<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"/>
如需有關應用程式列高度的建議,請參閱「Material Design 規格」。
將工具列放在活動的版面配置頂端,因為您要將工具列當做應用程式列使用。
- 在活動的
onCreate()方法中,呼叫活動的setSupportActionBar()方法並傳遞活動的工具列,如下列範例所示。這個方法會將工具列設為活動的應用程式列。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); }
您的應用程式現在有基本動作列。根據預設,動作列會包含應用程式名稱和溢位選單,其中最初包含「設定」項目。如要將更多動作新增至動作列和溢位選單,請參閱「新增及處理動作」。
使用應用程式列公用程式方法
將工具列設為活動的應用程式列後,您就能存取 AndroidX 程式庫 ActionBar 類別提供的公用程式方法。這種方法可讓您執行實用操作,例如隱藏及顯示應用程式列。
如要使用 ActionBar 公用程式方法,請呼叫活動的 getSupportActionBar() 方法。這個方法會傳回 AppCompat ActionBar 物件的參照。取得參照後,您就可以呼叫任何 ActionBar 方法來調整應用程式列。舉例來說,如要隱藏應用程式列,請呼叫 ActionBar.hide()。