Przeszedłem wiele odpowiedzi tutaj związanych z Toolbar, ale żadna z odpowiedzi nie mogła mi pomóc.Rozszerzony pasek narzędzi z niestandardowym widokiem nie wyświetlającym się z pełną szerokością
Co staram się osiągnąć, to mieć rozszerzony pasek narzędzi, który wyświetli logo, ewentualnie nazwę działania/aplikacji, będzie miał przycisk/szufladę z przełącznikiem w prawo, który wyświetli jak szuflada po prawej stronie, menu przepełnienia z innymi opcjami, takimi jak ustawienia, a także zakładka nawigacji u dołu, która pozwoli użytkownikowi poruszać się między różnymi fragmentami (różne dni w miesiącu).
Sposób, w jaki próbuję to osiągnąć, to pasek narzędzi. Najpierw utworzyłem pasek narzędzi i dodałem własny widok.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar_actionbar"
android:layout_width="match_parent"
android:layout_height="@dimen/min_double_toolbar_height"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
android:minHeight="?attr/actionBarSize"
android:background="@color/primary"
app:contentInsetStart="0dp"
app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp"
app:contentInsetRight="0dp"
android:clipToPadding="false"
>
<!-- ThemeOVerlay Makes sure the text and items are using solid colors-->
<include
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_gravity="bottom"
layout="@layout/day_navigation_tab"
/>
</android.support.v7.widget.Toolbar>
day_navigation_tab jest tylko pozioma z dwóch widokach graficznych z wyściółką z 72dp (jako wytyczne) oraz widoku tekstu z masą układu ustawiony na 1, więc rozciąga się na całej dostępnej przestrzeni. I wysokość 72dp.
Teraz w moim BaseActivity XML I to pasek w Framelayout głównego kontekstu (inaczej pasek narzędzi objąłby cały ekran o nieznanej przyczynie mnie (zajęło mi wieki figre że obecnie))
<...ommited>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar"
layout="@layout/app_bar"
/>
</FrameLayout>
<!-- android:layout_gravity="start" tells DrawerLayout to treat
this as a sliding drawer on the left side for left-to-right
languages and on the right side for right-to-left languages.
If you're not building against API 17 or higher, use
android:layout_gravity="left" instead. -->
<!-- The drawer is given a fixed width in dp and extends the full height of
the container. -->
<fragment android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="right"
android:name="alterway.agency.timeentry.NavigationDrawerFragment"
tools:layout="@layout/fragment_navigation_drawer"
app:layout="@layout/fragment_navigation_drawer"
/>
</android.support.v4.widget.DrawerLayout>
Jednak, gdy używam paska narzędziowego, nadmuchuję menu na pasku akcji w menu onCreateOptions, mój widok niestandardowy ulega zmniejszeniu i nie rozszerza krawędzi tworzonych opcji. Poniższe zdjęcie pokazuje, że lepiej, To zrzut ekranu z Widoku projektu w Android Studio. Żółty prostokąt wskazuje, gdzie będą umieszczane pozycje opcji. Kolor fioletowy wskazuje oryginalny rozmiar w DesignView. Czarny wskazuje rozmiar podczas uruchamiania aplikacji.
Dziękuję za wszelką pomoc.
Podobne pytania, które mogą być przydatne dla każdego, kto jest po drugiej stronie tego chce rozwiązać podobny problem:
- design - Support Toolbars custom view not using full width
- How do I set up an extended toolbar on Android L
Jak się dodanie pasek narzędzi do działania? Czy używasz 'setSupportActionBar (Toolbar)'? –
@ Lady_ari: Tak, robię to. Czy istnieje inny sposób? Ponadto, jeśli chcę dodać tytuł i ikonę itp., Czy powinienem to zrobić przed ustawianiem paska narzędzi lub czy powinienem modyfikować obiekt, który otrzymam, gdy wywołuję funkcję getSupportActionBar()? –
Myślę, że lepiej jest użyć 'getSupportActionBar()', aby zmodyfikować tytuł paska narzędzi, itp. –