В своей самой простой форме панель действий отображает заголовок действия с одной стороны и дополнительное меню с другой. Даже в этой базовой форме панель приложений предоставляет пользователям полезную информацию и придает приложениям Android единообразный вид.
![Изображение панели приложения в приложении «Сейчас в Android».](https://developer.android.com/static/images/ui/notifications/actions_actionbar.png?authuser=9&hl=ru)
Все действия, использующие тему по умолчанию, имеют ActionBar
в качестве панели приложения. Функции панели приложений добавляются в встроенную ActionBar
в различных версиях Android. В результате собственный ActionBar
ведет себя по-разному в зависимости от того, какую версию Android использует устройство.
С другой стороны, функции добавляются в версию Toolbar
библиотеки AndroidX AppCompat, что означает, что эти функции доступны на устройствах, использующих библиотеки AndroidX.
По этой причине используйте класс Toolbar
библиотеки AndroidX для реализации панелей приложений ваших действий. Использование панели инструментов библиотеки AndroidX обеспечивает единообразие поведения вашего приложения на самом широком спектре устройств.
Добавьте панель инструментов в действие
Эти шаги описывают, как настроитьToolbar
в качестве панели приложения вашего действия:- Добавьте библиотеку AndroidX в свой проект, как описано в обзоре AndroidX .
- Убедитесь, что активность расширяет
AppCompatActivity
:Котлин
class MyActivity : AppCompatActivity() { // ... }
Ява
public class MyActivity extends AppCompatActivity { // ... }
- В манифесте приложения задайте для элемента
<application>
использование одной из тем AppCompatNoActionBar
, как показано в следующем примере. Использование одной из этих тем не позволяет приложению использовать собственный класс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)) }
Ява
@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()
.