在最基本的形式中,動作列會在其中一側顯示活動的標題,另一側則顯示溢出式選單。即使是這種基本形式,應用程式列仍可為使用者提供實用資訊,並為 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); }
您的應用程式現在已具有基本動作列。根據預設,動作列會包含應用程式名稱和溢出選單,其中最初會包含「Settings」項目。您可以按照「新增及處理動作」一文所述,在動作列和溢位選單中新增更多動作。
使用應用程式列公用程式方法
將工具列設為活動的應用程式列後,您就能存取 AndroidX 程式庫 ActionBar
類別提供的實用程式方法。您可以透過這種方式執行實用操作,例如隱藏及顯示應用程式列。
如要使用 ActionBar
公用程式方法,請呼叫活動的 getSupportActionBar()
方法。這個方法會傳回 AppCompat ActionBar
物件的參照。取得參照後,您可以呼叫任何 ActionBar
方法來調整應用程式列。舉例來說,如要隱藏應用程式列,請呼叫 ActionBar.hide()
。