Tworzę aplikację na Androida dla języka od prawej do lewej. Używam ActionBarSherlock (kompatybilnej biblioteki paska działań Android).
Chodzi mi o to, jak zmienić kierunek działania paska na RTL, nawet jeśli użytkownik nie ustawi domyślnego języka Locale i RTL.
Jeśli ktoś ma pomysł nawet na standardowy pasek akcji Android, jest cenny i może Ci go udostępnić.
Dziękizmiana kierunku paska akcji od prawej do lewej
Odpowiedz
Jestem prawie pewien, że nie będziesz w stanie zrobić tego, o co prosisz. Wzorzec ActionBar jest bardzo specyficzny, a biblioteki obsługujące go będą obsługiwały tylko zdefiniowany wzorzec (który ma ikonę w lewym górnym rogu, a następnie tytuł i przyciski akcji po prawej stronie).
Zmiana testu jest tak prosta, jak zmiana ustawień regionalnych i tekstu w aplikacji (jak już wspomniano).
Zmiana pozycji elementów w obrębie samego ActionBar nie będzie obsługiwana przez biblioteki obsługujące standardowy wzorzec ActionBar - ponieważ opisywany opis nie jest obsługiwanym wzorcem interfejsu użytkownika.
Myślę, że powinieneś opuścić AB, tak jak jest. Zmiana kolejności nie jest konieczna, ponieważ i tak nie ma żadnej orientacji w prawo-lewo, a zmiana ta będzie bardzo dokuczliwa dla użytkowników.
Podsumowując, nie będziesz w stanie tego zrobić z istniejącymi bibliotekami - i prawdopodobnie nie powinieneś tak.
Ale inni zrobili to całkiem dobrze, spójrz na to: https://play.google.com/store/apps/details?id=com.hamrahyar.nabzebazaar – Aliaaa
Domyślam się, że użyli niestandardowego układu, aby utworzyć to element same w sobie. Myślę, że implementacja natywna (lub ActionBarSherlock) nie obsługuje tego w tej chwili (zobaczy, czy ktoś ma inną odpowiedź). – Booger
@Booger Jest to możliwe teraz! (zobacz moją odpowiedź) – semsamot
Z poziomu interfejsu API systemu Android na poziomie 17+ obsługuje RTL natywnie. Aby wymusić, aby cały układ był RTL, w tym ActionBar, wykonaj następujące czynności.
Edycja AndroidManifest.xml i dodać android:supportsRtl="true"
do tagu <application>
a następnie dodaj następującą linię do góry onCreate swoje działania metoda() forceRTLIfSupported();
a następnie włóż funkcji follow do swojej działalności.
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void forceRTLIfSupported()
{
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
}
}
Oczywiście jest to pomocne tylko przy debugowaniu. Użyj wersji View.LAYOUT_DIRECTION_LOCALE
dla kompilacji produkcyjnych, aby Twój układ został zmieniony tylko wtedy, gdy wybrana przez użytkownika lokalizacja systemu/język aka locale obsługuje RTL.
Nadzieję, że pomaga.
Booger ma rację. Aplikacja "Nabz Bazar", o której wspomniałeś, nie jest zgodna z prawdą w każdej wersji Androida. Jak widać here ABS tak naprawdę nie robi nic na Androida 4.0 lub nowszym, a zrzuty ekranu tej aplikacji są na Androidzie 4.2.
Musimy wierzyć potężną regułę w programowaniu:
wszystko będzie możliwe, gdy znasz swoje narzędzia.
Tak więc, od teraz można używać tej biblioteki, żeby naprawdę RTLize swoimi actionbars: https://github.com/semsamot/ActionBarRTLizer
I oczywiście jest to zgodne z API Level 7+.
* Nie można rozpoznać symbolu "ActionBarRtlizer" * (Myślę, że zapomniałeś wspomnieć o tym, co powinniśmy zaimportować, aby rozwiązać ten problem) –
wykorzystanie tego, to będzie zrobić układ z RTL, ale to w dominującej korzeń swojej xml
android:layoutDirection="rtl"
android:textDirection="rtl"
- 1. Od lewej do prawej UILabels
- 2. Wyrównaj ikony paska narzędzi od prawej do lewej?
- 3. Zręczna karuzela od prawej do lewej
- 4. RecyclerView Grow Element Od prawej do lewej
- 5. Przetwarzanie wyrażenia od prawej do lewej
- 6. Ułóż od lewej do prawej języki pisane od prawej do lewej html
- 7. Animować presentModalViewController od prawej/lewej
- 8. Ocena wyrażeń od lewej do prawej
- 9. Regex czyta od prawej do lewej
- 10. Dlaczego "drukuj" drukuje od prawej do lewej?
- 11. ustaw JFrame Orientacja od prawej do lewej!
- 12. Drukowanie komórek tabeli od prawej do lewej
- 13. Rozpocznij aktywność od lewej do prawej
- 14. Wyświetl animację od prawej do lewej Android
- 15. LinearLayout wypełniony od prawej do lewej
- 16. Jak eksplodować ciąg od prawej do lewej?
- 17. Zmiana ikony paska akcji
- 18. Metody łączenia od lewej do prawej w Haskell (w przeciwieństwie do prawej do lewej)
- 19. Zmiana koloru ikon paska przycisków paska akcji
- 20. HTML5 Tekst wypełnienia Canvas z napisem od prawej do lewej
- 21. Bezproblemowa animacja przejścia od lewej do prawej w Androidzie
- 22. Jak wypełnić wiersz QGridLayout od lewej do prawej?
- 23. slideToggle JQuery prawej do lewej
- 24. Zmiana stanu menu paska akcji w zależności od fragmentu
- 25. jQuery do animowania obrazu od lewej do prawej?
- 26. SpriteKit - węzeł skalowania do X od prawej do lewej
- 27. Jak ustawić elementy menu po lewej stronie paska akcji?
- 28. Tekst: prawej do lewej (CSS)
- 29. Raport wielu kolumn RDLC, z danymi płynącymi od lewej do prawej zamiast od góry do dołu
- 30. Animacja iOs Segue od lewej do prawej (poziomo)
znaleźliście rozwiązanie? –
Nie znalazłem dobrego rozwiązania, ale jeszcze nie przetestowałem rozwiązania "semsamota" na temat "RTLizera". Jeśli to przetestujesz, powiedz mi o tym. Dzięki. – Aliaaa