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

Все приложения, использующие тему по умолчанию, имеют панель ActionBar в качестве панели приложения. Функции панели приложения добавляются в стандартную ActionBar в различных версиях Android. В результате стандартная ActionBar ведет себя по-разному в зависимости от версии Android, используемой на устройстве.
С другой стороны, в версию Toolbar из библиотеки AndroidX AppCompat добавляются новые функции, а это значит, что эти функции становятся доступны на устройствах, использующих библиотеки AndroidX.
По этой причине используйте класс Toolbar из библиотеки AndroidX для реализации панелей приложений в ваших Activity. Использование панели инструментов из библиотеки AndroidX обеспечивает единообразное поведение вашего приложения на самом широком спектре устройств.
Добавить панель инструментов к действию
В этих шагах описано, как настроитьToolbar в качестве панели приложения для вашего действия:- Добавьте библиотеку AndroidX в свой проект, как описано в разделе «Обзор AndroidX» .
- Убедитесь, что активность наследует
AppCompatActivity:Котлин
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- В манифесте приложения установите для элемента
<application>использование одной из темNoActionBarиз AppCompat, как показано в следующем примере. Использование одной из этих тем предотвращает использование приложением собственного класса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()и передайте в качестве параметра панель инструментов активности, как показано в следующем примере. Этот метод устанавливает панель инструментов в качестве панели приложения для активности.Котлин
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); }
Теперь ваше приложение имеет базовую панель действий. По умолчанию панель действий содержит название приложения и меню дополнительных действий, которое изначально содержит пункт « Настройки» . Вы можете добавить дополнительные действия на панель действий и в меню дополнительных действий, как описано в разделе «Добавление и обработка действий» .
Используйте вспомогательные методы панели приложений.
После установки панели инструментов в качестве панели приложения для активности, вы получаете доступ к вспомогательным методам, предоставляемым классом ActionBar из библиотеки AndroidX. Такой подход позволяет выполнять полезные действия, например, скрывать и отображать панель приложения.
Чтобы использовать вспомогательные методы ActionBar , вызовите метод getSupportActionBar() активности. Этот метод возвращает ссылку на объект ActionBar класса AppCompat. Получив эту ссылку, вы можете вызвать любой из методов ActionBar для настройки панели приложения. Например, чтобы скрыть панель приложения, вызовите ActionBar.hide() .
