In zijn meest eenvoudige vorm geeft de actiebalk aan de ene kant de titel voor de activiteit weer en aan de andere kant een overloopmenu. Zelfs in deze eenvoudige vorm biedt de actiebalk nuttige informatie aan de gebruikers en helpt het Android-apps een consistent uiterlijk en gevoel te geven.
Figuur 1. Een app-balk met de app-titel en het overloopmenu.
Beginnend met Android 3.0 (API-niveau 11), hebben alle activiteiten die gebruikmaken van het standaardthema een ActionBar
als app-balk. Echter, app bar functies zijn geleidelijk toegevoegd aan de native ActionBar
gedurende verschillende Android releases. Als gevolg hiervan gedraagt de native ActionBar
zich anders, afhankelijk van welke versie van het Android-systeem een apparaat kan gebruiken. Daarentegen zijn de meest recente functies toegevoegd aan de ondersteuningsbibliotheek versie van Toolbar
, en ze zijn beschikbaar op elk apparaat dat de ondersteuningsbibliotheek kan gebruiken.
Om deze reden zou u de ondersteuningsbibliotheek Toolbar
klasse moeten gebruiken om de app-balken van uw activiteiten te implementeren. Het gebruik van de werkbalk van de ondersteuningsbibliotheek helpt ervoor te zorgen dat uw app consistent gedrag zal vertonen over het breedste scala aan apparaten. Bijvoorbeeld, de Toolbar
-widget biedt een material design-ervaring op apparaten waarop Android 2.1 (API-niveau 7) of later draait, maar de native actiebalk ondersteunt geen material design tenzij het apparaat draait op Android 5.0 (API-niveau 21) of hoger.
Een werkbalk aan een activiteit toevoegen
Deze stappen beschrijven hoe u een Toolbar
als de app-balk van uw activiteit instelt:
- Voeg de v7 appcompat-ondersteuningsbibliotheek aan uw project toe, zoals beschreven in Ondersteuning bibliotheek instellen.
- Zorg ervoor dat de activiteit
AppCompatActivity
uitbreidt:Kotlin
class MyActivity : AppCompatActivity() { // ...}
Java
public class MyActivity extends AppCompatActivity { // ...}
Opmerking: Breng deze wijziging aan voor elke activiteit in uw app die een
Toolbar
als app-bar gebruikt. - In het app manifest stelt u het
<application>
element in om een van de appcompat’sNoActionBar
thema’s te gebruiken. Door een van deze thema’s te gebruiken, voorkomt u dat de app de nativeActionBar
-klasse gebruikt om de app-balk te leveren. Bijvoorbeeld:<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Voeg een
Toolbar
toe aan de lay-out van de activiteit. De volgende opmaakcode voegt bijvoorbeeld eenToolbar
toe en geeft het de indruk dat deze boven de activiteit zweeft:<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"/>
Zie de Material Design-specificatie voor aanbevelingen met betrekking tot de hoogte van de app-balk.
Plaats de werkbalk bovenaan in de lay-out van de activiteit, omdat u deze gebruikt als een app-balk.
- Roep in de
onCreate()
-methode van de activiteit desetSupportActionBar()
-methode van de activiteit aan en geef de werkbalk van de activiteit door. Deze methode stelt de werkbalk in als de app-balk voor de activiteit. Bijvoorbeeld: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);}
Uw app heeft nu een basis-actiebalk. Standaard bevat de actiebalk alleen de naam van de app en een overloopmenu. Het optiemenu bevat aanvankelijk alleen het item Instellingen. U kunt meer acties toevoegen aan de actie balk en het overloop menu, zoals beschreven in Toevoegen en afhandelen van acties.
Gebruik App Bar Utility Methods
Zodra u de werkbalk instelt als de app balk van een activiteit, heeft u toegang tot de verschillende utility methodes die worden geleverd door de v7 appcompat support library’s ActionBar
class. Met deze aanpak kunt u een aantal nuttige dingen doen, zoals het verbergen en tonen van de werkbalk.