Widziałem przedłużony pasek aplikacji o wysokości w wytycznych Google Design App Bar. Jak mogę je wdrożyć w Android Lollipop?Jak zadeklarować rozszerzenie paska narzędzi/paska czynności na Androidzie Lollipop?
Odpowiedz
Trzeba użyć nowego Toolbar widżet do osiągnięcia tego celu. Pasek narzędzi ma specjalną obsługę dla minimalnej wysokości, aby zadeklarować ilość miejsca używanego na przyciski (i akcje).
W poniższym przykładzie ustawiamy wysokość na 128dp (czyli 56dp + 72dp zgodnie z definicją w specyfikacji), ale zachowujemy android:minHeight
jako standard actionBarSize
(zwykle 56dp). Oznacza to, że przyciski i akcje są ograniczone do pionowej pozycji w górnym 56dp. Możemy następnie użyć android:gravity
, aby ustawić tytuł na dole.
<Toolbar
android:id="@+id/toolbar"
android:layout_height="128dp"
android:layout_width="match_parent"
android:minHeight="?android:attr/actionBarSize"
android:background="?android:attr/colorPrimary"
android:gravity="bottom" />
Jeśli używasz AppCompat, a następnie zmienić deklarację korzystania android.support.v7.widget.Toolbar
zamiast korzystania i to atrybuty.
Dzięki za pytanie, jej odpowiedź, a ponadto do wykonania paska w natywnej i supportlibrary :)
I możemy grać więcej. W czasie wykonywania możemy grać z wysokością i MinimalHighight.
Wysokość to wysokość paska narzędzi, jest prosta, każde ciało rozumie, a grawitacja działa zgodnie z tą wysokością.
Minimalna wysokość jest trudniejsza i nie powinna wynosić co najmniej 56dp. Ta minHeight służy do umieszczenia linii twojego menuItem. Ta linia jest w środku twojej minHeight.
Możesz dodać ten kod do swojej aktywności, aby przekonać się samemu o różnicy. :)
Runnable toolBarAnimator=new Runnable() {
@Override
public void run() {
if(postICS){
// toolbar.setTranslationX(iteration);
// toolbar.setElevation(iteration);
toolbar.setMinimumHeight(iteration * 5);
toolbar.getLayoutParams().height++;
}
uiThreadHanlder.postDelayed(this,16);
iteration++;
if(iteration>150)iteration=0;
}
};
Handler uiThreadHanlder=new Handler();
int iteration=0;
@Override
protected void onResume() {
super.onResume();
//launch the animation
uiThreadHanlder.postDelayed(toolBarAnimator, 1000);
}
@Override
protected void onPause() {
super.onPause();
//stop the animation
uiThreadHanlder.removeCallbacks(toolBarAnimator);
}
Gdzie jest pasek narzędzi:
toolbar = (Toolbar) findViewById (R.id.toolbar);
Kiedy robi to uzyskać:
ale jeśli zostawisz animację nadal można uzyskać:
jest to dlaczego, ustawienie paska narzędzi androida: layout_height do wrap_content jest dobrym rozwiązaniem w większości przypadku, ponieważ pasek narzędzi dostosuje jego wysokość zgodnie z jego zawartością (i można zmienić zawartość w czasie wykonywania :)
I w ten sposób zmieniasz rozmiar paska narzędziowego w czasie wykonywania.
Dzięki Chris Banes za niesamowitą pracę wykonaną na pasku akcji.
co to jest postICS? in if (postICS) {... –
@MohammadHadi Wyobrażam sobie, że postICS zostałby zdefiniowany w stylu: 'boolean postICS = Build.VERSION.SDK_INT> = Build.VERSION_CODES.JELLY_BEAN;' – dm78
- 1. Zmiana wysokości paska czynności na Androidzie JellyBean
- 2. Wyłącz przycisk paska czynności w Androidzie
- 3. Jak zmienić rozmiar paska czynności
- 4. element menu paska czynności onclick?
- 5. Tablet Gmail, taki jak elementy paska czynności.
- 6. Jak usunąć zawyżone menu/pozycje z nowego paska narzędzi Lollipop?
- 7. Listening onClick paska czynności dla przycisku Home
- 8. Podmenu paska czynności nie działa z actionLayout
- 9. Przesuwne zakładki wewnątrz zakładek paska czynności
- 10. Usuń ikonę z paska czynności Xamarin
- 11. Dodawanie paska czynności do listy aktywności
- 12. Android Honeycomb - Zmiana stylu paska czynności
- 13. Kliknięcie na elementy menu paska czynności w Robotium
- 14. Atrybut alfa działa tylko na Androidzie Lollipop, dlaczego?
- 15. Ciasteczka sesyjne z Cordova nie działają na Androidzie Lollipop
- 16. Przycisk setText z Spannable nie działa na Androidzie 5.0 Lollipop
- 17. Jak dodać element paska czynności w czasie wykonywania?
- 18. Jak zmienić kolor miękkiej klawiatury "Enter"/"Następny" przycisk na lollipop
- 19. Czy istnieje sposób na zmniejszenie odstępów między ikonami elementów czynności na pasku czynności?
- 20. Jak mogę wykluczyć ActionBar podczas przejścia pomiędzy działaniami na Androidzie 5.0
- 21. Android: Wyświetlanie pozycji menu paska czynności w zależności od ViewPagera
- 22. Cień FloatingActionButton na pre-lollipop
- 23. Jak nadpisać pasek przepełnienia paska czynności na urządzeniach za pomocą przycisku menu sprzętowego?
- 24. Rozmiar ikony paska czynności w systemie Android 4.2
- 25. Nie można dodać niestandardowego widoku do paska czynności Android, dlaczego?
- 26. Czy jest możliwe dodanie timera do paska akcji na Androidzie?
- 27. Canvas.drawTextOnPath (...) nie działa na Lollipop
- 28. Jak zmienić pozycję pozycji menu na pasku czynności
- 29. Co się stało z Monospace w Androidzie Lollipop?
- 30. Menu rozwijane na pasku czynności
Jeśli używasz 'layout_height' jest do zrobienia, spodziewam się, że obejście opisane przez monsun tutaj również nie jest obejściem, ale właściwą drogą? https://code.google.com/p/android/issues/detail?id=77874 –
Świetnie, ale zgodnie z danymi w wytycznych 56 + 72dp w przypadku portretu. Krajobraz 48dp + 72dp. Stąd moje pragnienie czegoś automagicznego/wbudowanego.Nie można określić actionBarSize + 72dp i wolałby nie powielać kwalifikatorów actionBarSize dla krajobrazu/portretu/tabletu/telefonu. –
Chciałbym też móc zadeklarować wyrażenia również dla wymiarów, ale nie możemy. –