Настройте панель приложений

Попробуйте способ создания
Jetpack Compose — рекомендуемый набор инструментов пользовательского интерфейса для Android. Узнайте, как добавлять компоненты в Compose.

В своей самой простой форме панель действий отображает заголовок действия с одной стороны и дополнительное меню с другой. Даже в этой базовой форме панель приложений предоставляет пользователям полезную информацию и придает приложениям Android единообразный вид.

Изображение панели приложения в приложении «Сейчас в Android».
Рис. 1. Панель приложения со значком действия в приложении «Теперь в Android».

Все действия, использующие тему по умолчанию, имеют ActionBar в качестве панели приложения. Функции панели приложений добавляются в встроенную ActionBar в различных версиях Android. В результате собственный ActionBar ведет себя по-разному в зависимости от того, какую версию Android использует устройство.

С другой стороны, функции добавляются в версию Toolbar библиотеки AndroidX AppCompat, что означает, что эти функции доступны на устройствах, использующих библиотеки AndroidX.

По этой причине используйте класс Toolbar библиотеки AndroidX для реализации панелей приложений ваших действий. Использование панели инструментов библиотеки AndroidX обеспечивает единообразие поведения вашего приложения на самом широком спектре устройств.

Добавьте панель инструментов в действие

Эти шаги описывают, как настроить Toolbar в качестве панели приложения вашего действия:
  1. Добавьте библиотеку AndroidX в свой проект, как описано в обзоре AndroidX .
  2. Убедитесь, что активность расширяет AppCompatActivity :

    Котлин

    class MyActivity : AppCompatActivity() {
      // ...
    }

    Ява

    public class MyActivity extends AppCompatActivity {
      // ...
    }
  3. В манифесте приложения задайте для элемента <application> использование одной из тем AppCompat NoActionBar , как показано в следующем примере. Использование одной из этих тем не позволяет приложению использовать собственный класс ActionBar для предоставления панели приложения.
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
  4. Добавьте 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 .

    Разместите панель инструментов вверху макета действия, поскольку вы используете ее как панель приложения.

  5. В методе onCreate() действия вызовите метод setSupportActionBar() действия и передайте панель инструментов действия, как показано в следующем примере. Этот метод устанавливает панель инструментов в качестве панели приложения для действия.

    Котлин

    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))
    }

    Ява

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);
    }

Теперь в вашем приложении есть базовая панель действий. По умолчанию панель действий содержит название приложения и дополнительное меню, которое изначально содержит пункт «Настройки» . Вы можете добавить дополнительные действия на панель действий и в дополнительное меню, как описано в разделе Добавление и обработка действий .

Используйте служебные методы панели приложения

После того как вы установите панель инструментов в качестве панели приложения действия, вы получите доступ к служебным методам, предоставляемым классом ActionBar библиотеки AndroidX. Такой подход позволяет делать полезные вещи, например скрывать и показывать панель приложения.

Чтобы использовать служебные методы ActionBar , вызовите метод действия getSupportActionBar() . Этот метод возвращает ссылку на объект AppCompat ActionBar . Получив эту ссылку, вы можете вызвать любой из методов ActionBar , чтобы настроить панель приложения. Например, чтобы скрыть панель приложения, вызовите ActionBar.hide() .