2010-12-31 12 views
28

Mam dość złożoną aplikację na Androida, zawartość folderu "layout" jest coraz większa. Próbowałem zorganizować poszczególne pliki xml układu w podfoldery np. layout/buttons /, layout/activity /, layout/views/etc. Wydaje się, że to nie działa, zawartość folderów nie została spopularyzowana w klasie R.Android Organizuj układy w podkatalogach

Czy istnieje sposób, aby to zrobić?

Dzięki!

+1

Możliwy duplikat [Can folder Układ Android zawierać podfoldery?] (Http://stackoverflow.com/questions/4930398/can-the-android-layout -folder-zawiera-podfoldery) –

Odpowiedz

22

Nie sądzę, że będziesz w stanie to zrobić. Uważam, że obsługuje tylko niektóre nazwy folderów, takie jak layout-large, layout-mdpi, layout-hdpi, layout-fr, itd. Możesz użyć więcej niż jednego z tych modyfikacji, jak również layout-fr-hdpi-large.

Ta strona pokazuje wszystkie dozwolone modyfikatory

http://developer.android.com/guide/topics/resources/providing-resources.html

+2

Mówi o podfolderach, np. 'layout-hdpi/buttons/mybutton.xml', a nie same foldery zasobów. – KingCrunch

+3

Nadal nie jest to obsługiwane. Chciałbym móc to zrobić również. Dzięki niestandardowemu interfejsowi możesz uzyskać wiele układów i zasobów do rysowania w jednym folderze. Mam nadzieję, że dodadzą to w przyszłej wersji SDK> – kcoppock

+4

Oznaczona jako odpowiedź, jak to technicznie poprawne, nie jest to obecnie możliwe. Eksploruję alternatywę, taką jak pakowanie moich opinii w oddzielne projekty. – longhairedsi

17

Inną opcją jest użycie przedrostka dla różnych poglądów. Nie jest tak miły jak inny folder, ale może wprowadzić trochę porządku.

9

Teraz z Android Studio i Gradle możesz mieć wiele folderów zasobów w projekcie. Umożliwienie organizowania nie tylko plików układu, ale także wszelkiego rodzaju zasobów.

To nie jest dokładnie podfolder, ale może separte części aplikacji.

Konfiguracja jest tak:

sourceSets { 
    main { 
     res.srcDirs = ['src/main/res', 'src/main/res2'] 
    } 
} 

Sprawdź documentation.

+1

nazwa pliku będzie jednak konfliktowa. – Gohan

+0

Witam, wypróbowałem Twoje rozwiązanie, ale podczas działania kompilacji napisano: Nie można znaleźć właściwości "res" w zestawie źródłowym "main". – Apperside

+0

Czy próbowałeś dodać źródła do wbudowania bloków android {...}? –