Widziałem trochę gadaniny o tym, ale nic konkretnego. Czy istnieje sposób, aby umieścić karty w TabWidget u dołu ekranu? Jeśli tak to jak?
Próbowałem następujących rzeczy, ale nie zadziałało:
a) ustawienie tabwidget poniżej framelayout
b) ustawienie grawitacji tabwidget na „bottom”
Dzięki! llappall
Odpowiedzi:
Oto najprostsze, najbardziej niezawodne i skalowalne rozwiązanie umożliwiające wyświetlanie zakładek u dołu ekranu.
layout_height
sięwrap_content
zarówno FrameLayout i TabWidgetandroid:layout_weight="1"
android:layout_weight="0"
(0 jest domyślne, ale dla podkreślenia, czytelności itp.)android:layout_marginBottom="-4dp"
(aby usunąć dolną przegrodę)Pełny kod:
źródło
layout_weight=1
w FrameLayout. Dzięki temu formant karty może najpierw „odebrać” swoją wysokość poza LinearLayout.android:layout_marginBottom="-5px"
do TabWidget. Spowoduje to przeniesienie TabWidget z dołu ekranu o 5 pikseli, na tyle, aby nie było widać podziału. FrameLayout zrekompensuje rozmiar, więc działa idealnie. Nie jestem pewien, czy rozmiar separatora zmienia się na większych urządzeniach, czy nie. Być może będziesz musiał użyćdp
zamiastpx
.Wypróbuj;) Po prostu obserwuj zawartość FrameLayout (@ id / tabcontent), bo nie wiem, jak sobie poradzi w przypadku przewijania ... W moim przypadku działa, ponieważ jako zawartość moich zakładek użyłem ListView . :) Mam nadzieję, że to pomoże.
źródło
Jest sposób na usunięcie tej linii.
1) Postępuj zgodnie z tym samouczkiem: android-tabs-with-fragments
2) Następnie zastosuj zmianę RelativeLayout, którą Leaudro zasugerował powyżej (zastosuj rekwizyty układu do wszystkich FrameLayoutów).
Możesz także dodać ImageView do tab.xml w elemencie nr 1 i uzyskać wygląd bardzo podobny do iPhone'a dla zakładek.
Oto zrzut ekranu tego, nad czym teraz pracuję. Nadal mam trochę do zrobienia, głównie wybranie selektora ikon i zapewnienie równego rozmieszczenia w poziomie, ale masz pomysł. W moim przypadku używam fragmentów, ale te same zasady powinny mieć zastosowanie do standardowego widoku karty.
źródło
Nie jestem pewien, czy będzie działać dla wszystkich wersji Androida (szczególnie tych z niestandardowymi elementami interfejsu użytkownika), ale udało mi się usunąć szary pasek na dole, dodając
do pliku XML TabWidget ...
źródło
Dla wszystkich z was, którzy próbują usunąć linię oddzielającą tabWidget, oto przykładowy projekt (i odpowiedni samouczek), który świetnie sprawdza się przy dostosowywaniu kart, a tym samym usuwaniu problemów, gdy karty są na dole. Projekt Eclipse: android-custom-tabs ; Oryginalne wyjaśnienie: blog ; Mam nadzieję, że to pomogło.
źródło
Istnieją dwa sposoby wyświetlania kart u dołu działania karty.
Sprawdź łącze, aby uzyskać więcej informacji .
źródło
źródło
To może nie być dokładnie to, czego szukasz (nie jest to „łatwe” rozwiązanie, aby wysłać swoje karty na dół ekranu), ale mimo to jest to interesujące alternatywne rozwiązanie, które chciałbym Ci oznaczyć:
ScrollableTabHost został zaprojektowany tak, aby zachowywał się jak TabHost, ale z dodatkowym widokiem przewijania, aby zmieścić więcej elementów ...
może zagłębiając się w ten projekt open source, znajdziesz odpowiedź na swoje pytanie. Jeśli zobaczę coś łatwiejszego, wrócę do Ciebie.
źródło
Miałem ten sam problem z kartami Androida, gdy próbowałem umieścić je na dole ekranu. Mój scenariusz polegał na tym, aby nie używać pliku układu i tworzyć zakładki w kodzie, chciałem również uruchomić działania z każdej karty, które wydawały się nieco zbyt złożone przy użyciu innych podejść, więc oto przykładowy kod, aby rozwiązać problem:
dodawanie-zakładek-w-android-i-umieszczanie-ich
źródło
Tak, zobacz: link , ale użył układów xml, a nie działań, aby utworzyć nową kartę, więc umieść jego kod xml (ustaw paddingTop dla FrameLayout - 0px), a następnie napisz kod:
}
źródło
Polecam używać tego kodu do stabilnej pracy, został zoptymalizowany pod kątem zagnieżdżonych fragmentów w zakładce (na przykład zagnieżdżony MapFragment) i przetestowany na "nie zachowuj działań": https://stackoverflow.com/a/23150258/2765497
źródło