Ve své nejzákladnější podobě zobrazuje panel akcí na jedné straně název aktivity a na druhé straně přetékající nabídku. I v této jednoduché podobě poskytuje lišta aplikací uživatelům užitečné informace a pomáhá dát aplikacím pro systém Android jednotný vzhled
Obrázek 1. Panel aplikací s názvem apptitle a přetékající nabídkou.
Počínaje systémem Android 3.0 (úroveň API 11) mají všechny aktivity, které používají výchozí motiv, jako panel aplikací ActionBar
. V průběhu různých vydání systému Android však byly funkce lišty aplikací postupně přidávány do nativního ActionBar
. V důsledku toho se nativní ActionBar
chová odlišně v závislosti na tom, jakou verzi systému Android může zařízení používat. Naproti tomu nejnovější funkce jsou přidány do verze Toolbar
podpůrné knihovny a jsou k dispozici v každém zařízení, které může podpůrnou knihovnu používat.
Z tohoto důvodu byste měli pro implementaci lišt aplikací svých aktivit používat třídu Toolbar
podpůrné knihovny. Použití lišty nástrojů podpůrné knihovny pomáhá zajistit, že vaše aplikace bude mít konzistentní chování v co nejširší škále zařízení. Například widget Toolbar
poskytuje prostředí material designu na zařízeních se systémem Android 2.1 (úroveň API 7) nebo novějším, ale nativní lišta aktivit nepodporuje material design, pokud zařízení nemá systém Android 5.0 (úroveň API 21) nebo novější.
Přidání panelu nástrojů do aktivity
Tyto kroky popisují, jak nastavit Toolbar
jako panel aplikací vaší aktivity:
- Přidejte do projektu podpůrnou knihovnu v7 appcompat, jak je popsáno v části Nastavení podpůrné knihovny.
- Ujistěte se, že aktivita rozšiřuje
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ...}
Java
public class MyActivity extends AppCompatActivity { // ...}
Poznámka: Tuto změnu proveďte u každé aktivity ve vaší aplikaci, která používá
Toolbar
jako lištu aplikace. - V manifestu aplikace nastavte prvek
<application>
tak, aby používal jeden z motivůNoActionBar
appcompat. Použití jednoho z těchto motivů zabrání tomu, aby aplikace používala nativní tříduActionBar
k zajištění lišty aplikace. Např:<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Přidejte
Toolbar
do rozvržení aktivity. Například následující kód rozvržení přidáváToolbar
a dává mu vzhled plovoucí nad aktivitou:<android.support.v7.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"/>
Doporučení týkající se vyvýšení lišty aplikace naleznete ve specifikaci Material Design.
Umístěte panel nástrojů do horní části rozvržení aktivity, protože jej používáte jako panel aplikace.
- V metodě
onCreate()
aktivity zavolejte metodusetSupportActionBar()
aktivity a předejte panel nástrojů aktivity. Tato metoda nastaví panel nástrojů jako panel aplikace pro danou aktivitu. Například:Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Note that the Toolbar defined in the layout has the id "my_toolbar" setSupportActionBar(findViewById(R.id.my_toolbar))}
Java
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar);}
Vaše aplikace má nyní základní panel akcí. Ve výchozím nastavení obsahuje akční panel pouze název aplikace a přetékající nabídku. Nabídka možností zpočátku obsahuje pouze položku Nastavení. Do panelu akcí a přetékající nabídky můžete přidat další akce, jak je popsáno v části Přidávání a obsluha akcí.
Použití pomocných metod panelu aplikací
Jakmile nastavíte panel nástrojů jako panel aplikací aktivity, máte přístup k různým pomocným metodám, které poskytuje třída ActionBar
podpůrné knihovny v7 appcompat. Tento přístup vám umožňuje provádět řadu užitečných věcí, například skrývat a zobrazovat panel aplikací.