Sdílet prostřednictvím


Přidání druhého panelu nástrojů

Přehled

Panel Toolbar akcí může být víc než nahradit – dá se použít vícekrát v rámci aktivity, dá se přizpůsobit pro umístění kdekoli na obrazovce a dá se nakonfigurovat tak, aby přesahoval jenom částečnou šířku obrazovky. Následující příklady ukazují, jak vytvořit druhou a Toolbar umístit ji do dolní části obrazovky. Tím Toolbar se implementují položky nabídky Kopírovat, Vyjmout a Vložit .

Definování druhého panelu nástrojů

Upravte soubor rozložení Main.axml a nahraďte jeho obsah následujícím kódem XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/main_content"
        android:layout_below="@id/toolbar">
      <ImageView
          android:layout_width="fill_parent"
          android:layout_height="0dp"
          android:layout_weight="1" />
      <Toolbar
          android:id="@+id/edit_toolbar"
          android:minHeight="?android:attr/actionBarSize"
          android:background="?android:attr/colorAccent"
          android:theme="@android:style/ThemeOverlay.Material.Dark.ActionBar"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" />
    </LinearLayout>
</RelativeLayout>

Tento kód XML přidá sekundu Toolbar do dolní části obrazovky s prázdnou ImageView výplňí uprostřed obrazovky. Výška je Toolbar nastavená na výšku panelu akcí:

android:minHeight="?android:attr/actionBarSize"

Barva pozadí je Toolbar nastavená na barvu zvýraznění, která bude definována dále:

android:background="?android:attr/colorAccent

Všimněte si, že je Toolbar založen na jiném motivu (ThemeOverlay.Material.Dark.ActionBar), než který používá Toolbar vytvořený panel akcí nahrazování panelu akcí – není vázán na dekor okna aktivity ani k motivu použitému v prvním Toolbar.

Upravte prostředky, hodnoty nebo styles.xml a do definice stylu přidejte následující barvu zvýraznění:

<item name="android:colorAccent">#C7A935</item>

Dolní panel nástrojů tak bude tmavě oranžová barva. Sestavení a spuštění aplikace zobrazí v dolní části obrazovky prázdný druhý panel nástrojů:

Snímek obrazovky aplikace se žlutým druhým panelem nástrojů v dolní části obrazovky

Přidat položky nabídky Upravit

Tato část vysvětluje, jak přidat položky nabídky pro úpravy do dolní části Toolbar.

Přidání položek nabídky do sekundárního Toolbar:

  1. Přidejte ikony nabídek do mipmap- složek projektu aplikace (v případě potřeby).

  2. Definujte obsah položek nabídky přidáním dalšího souboru prostředku nabídky do nabídky Resources/menu.

  3. V metodě aktivity OnCreate vyhledejte Toolbar (voláním FindViewById) a nafouknutím Toolbarnabídek '.

  4. Implementujte obslužnou rutinu OnCreate kliknutí pro nové položky nabídky.

Následující části ukazují tento proces podrobně: Vyjmout, Kopírovat a Vložit položky nabídky jsou přidány do dolní části Toolbar.

Definování prostředku nabídky Upravit

V podadresáři Resources/menu vytvořte nový soubor XML s názvem edit_menus.xml a nahraďte obsah následujícím kódem XML:

<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item
       android:id="@+id/menu_cut"
       android:icon="@mipmap/ic_menu_cut_holo_dark"
       android:showAsAction="ifRoom"
       android:title="Cut" />
  <item
       android:id="@+id/menu_copy"
       android:icon="@mipmap/ic_menu_copy_holo_dark"
       android:showAsAction="ifRoom"
       android:title="Copy" />
  <item
       android:id="@+id/menu_paste"
       android:icon="@mipmap/ic_menu_paste_holo_dark"
       android:showAsAction="ifRoom"
       android:title="Paste" />
</menu>

Tento XML vytvoří položky nabídky Vyjmout, Kopírovat a Vložit (pomocí ikon, které byly přidány do mipmap- složek na panelu akcí).

Nafouknutí nabídek

Na konec OnCreate metody v MainActivity.cs přidejte následující řádky kódu:

var editToolbar = FindViewById<Toolbar>(Resource.Id.edit_toolbar);
editToolbar.Title = "Editing";
editToolbar.InflateMenu (Resource.Menu.edit_menus);
editToolbar.MenuItemClick += (sender, e) => {
    Toast.MakeText(this, "Bottom toolbar tapped: " + e.Item.TitleFormatted, ToastLength.Short).Show();
};

Tento kód vyhledá edit_toolbar zobrazení definované v souboru Main.axml, nastaví jeho název na Úpravy a nafoukne položky nabídky (definované v edit_menus.xml). Definuje obslužnou rutinu kliknutí na nabídku, která zobrazí informační zpráva, která označuje, na kterou ikonu úprav došlo.

Sestavte a spusťte aplikaci. Po spuštění aplikace se text a ikony přidané výše zobrazí, jak je znázorněno tady:

Diagram dolního panelu nástrojů s ikonami Vyjmout, Kopírovat a Vložit

Klepnutím na ikonu nabídky Vyjmout se zobrazí následující informační zpráva:

Snímek obrazovky informační zprávy označující, že se klepla na ikonu nabídky Vyjmout

Po klepnutí na položky nabídky na obou panelech nástrojů se zobrazí výsledné informační zpráva:

Snímky obrazovky s informačními zprávami pro položky nabídky Uložit, Kopírovat a Vložit, na které se klepne

Tlačítko Nahoru

Většina aplikací pro Android spoléhá na tlačítko Zpět pro navigaci v aplikaci. Stisknutím tlačítka Zpět přejde uživatel na předchozí obrazovku. Můžete ale také chtít zadat tlačítko Nahoru , které uživatelům usnadňuje navigaci "nahoru" na hlavní obrazovku aplikace. Když uživatel vybere tlačítko Nahoru , uživatel se přesune na vyšší úroveň v hierarchii aplikace – to znamená, že aplikace zobrazí uživatele zpět více aktivit v back stacku, místo aby se vrátil k dříve navštívené aktivitě.

Pokud chcete tlačítko Nahoru povolit ve druhé aktivitě, která používá Toolbar jako panel akcí, volejte SetDisplayHomeAsUpEnabled metody a SetHomeButtonEnabled metody v metodě druhé aktivityOnCreate:

SetActionBar (toolbar);
...
ActionBar.SetDisplayHomeAsUpEnabled (true);
ActionBar.SetHomeButtonEnabled (true);