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