2015-10-30 2 views
4

Существует два основных способа создания панели приложений для действия в API 21+ с помощью панели инструментов.Почему я должен использовать AppCompatActivity вместо автономной панели инструментов для создания панели приложений Activity?

  1. Создайте активность, которая проходит AppCompatActivity, а затем следуйте инструкциям here

  2. Создать автономный Toolbar, который действует как панель приложения (определить панель инструментов в XML с помощью android.support.v7.widget.Toolbar), а затем надуть меню в него например: `toolbar.inflateMenu (R.menu.homeview_menu_common);

Мой вопрос: каковы преимущества и недостатки делают один над другим `

Смежный вопрос к этой теме можно найти здесь (How can an activity use a Toolbar without extending AppCompatActivity)

ответ

2

Короткий ответ?: Нет, вы должны расширить свою деятельность. AppCompatActivty

Вы можете создать панель инструментов без AppCompatActivty, но помимо панели приложений AppCompat также приносит с собой библиотеку поддержки которые позволяют добавлять дизайн материала в приложение, начиная с уровня API 7 уровня Android.

Если у вас нет конкретной причины не использовать AppCompat, все ваши действия должны расширять AppCompatActivty для моделирования приложения Material.

+0

'android.support.v7.widget.Toolbar' также дает совместимость с Панели инструментов для предыдущих версий Android. – Amit

+0

AppCompat - это коллекция [поддерживающих библиотек] и default [styles] для android L/M (в зависимости от версии). Подумайте об этом таким образом, если вы только нажмете панель инструментов, вам также придется потянуть стиль кнопки, стиль навигационной панели, стиль диалога ... Конечно, вы можете самостоятельно настроить стиль кнопки, но вам не гарантируется, что кнопка будет выглядеть одинаково для всех устройств. – toidiu

0

Вы должны использовать AppCompatActivity расширенный Activity потому что, когда вы создали Toolbar как ActionBar с setSupportActionBar(Toolbar) вы получите возможность ссылаться через Context.getSupportActionBar() почти из любого места в коде Fragment то есть. Но если вы не продлеваете AppCompatActivity, вы не можете легко получить ссылку на Toolbar из любого другого места, кроме Activity, в котором оно было определено.

Смежные вопросы