2013-05-08 7 views
5

Mam oddzielny plik układu dla użytkowników w języku arabskim, którego chcę używać tylko dla urządzeń, które nie obsługują macierzystego mirroringu RTL systemu Android (wprowadzone na poziomie interfejsu API 17). Jeśli używają urządzenia z interfejsem API 17 lub nowszym, chcę użyć domyślnego pliku XML.W jaki sposób mam system Android używać kwalifikowanego pliku zasobów tylko na starszych urządzeniach?

Jak to zrobić? Wiem:

Jeśli umieściłem mój home.xml w res/layout/, będzie on używany jako domyślny plik układu.

Jeśli mogę umieścić kolejną home.xml w res/layout-ar/ to będzie wykorzystywane do arabskimi głośników

Jeśli mogę umieścić kolejną home.xml w res/layout-ar-v17/ to będzie wykorzystywane do arabskimi głośniki V17 lub wyższym. *

* The Problem polega na tym, że nie chcę mieć innego home.xml, po prostu chcę, żeby system używał domyślnego i lustro.

Odpowiedz

6

Można użyć Layout Aliases. W efekcie otrzymasz dwa pliki układu, nazwijmy je home_one.xml i home_two.xml. Następnie w res/values/layout.xml i res/values-ar-v17/layout.xml trzeba

<item name="home" type="layout">@layout/home_one</item> 

aw res/values-ar/layout.xml musisz

<item name="home" type="layout">@layout/home_two</item> 
1

Zalecam utworzenie dwóch układów wielokrotnego użytku (zgodnie z opisem here), jednego dla układu domyślnego i jednego dla języka arabskiego z poziomem interfejsu API 17+. Następnie możesz zdefiniować różne pliki home.xml w odpowiednich folderach specyficznych dla konfiguracji, aby odpowiednio dopasować <include> (lub <merge>). W ten sposób wystarczy replikacja pojedynczego znacznika <include> zamiast całego układu.