프로그래밍 언어/Android

Android 레이아웃 폴더에 하위 폴더를 포함하는 방법

Rateye 2021. 9. 29. 10:27
728x90
반응형
질문 : Android 레이아웃 폴더에 하위 폴더가 포함될 수 있습니까?

지금은 모든 XML 레이아웃 파일을 'res / layout'폴더에 저장하고 있으므로 소규모 프로젝트를 관리하는 것이 가능하고 간단하지만 크고 무거운 프로젝트가있는 경우 계층 구조가 있어야하고 레이아웃 폴더 안에 필요한 하위 폴더.

예를 들어

layout
-- layout_personal
   -- personal_detail.xml
   -- personal_other.xml
--layout_address
  -- address1.xml
  -- address2.xml

같은 방식으로 대형 애플리케이션에 대한 하위 폴더를 갖고 싶습니다. Android 프로젝트 내에 그렇게 할 수있는 방법이 있습니까?

레이아웃 폴더 내에 layout-personal 및 layout_address 하위 폴더를 만들 수 있지만 R.layout ._______을 사용하여 XML 레이아웃 파일에 액세스 할 때가되면 내부에 XML 레이아웃 팝업이 없습니다. 메뉴.

답변

gradle로 이것을 할 수 있습니다. 방법을 보여주는 데모 프로젝트 를 만들었습니다.

트릭은 여러 리소스 폴더 를 병합하는 gradle의 기능을 사용하고 sourceSets 블록의 중첩 하위 폴더뿐만 아니라 res 폴더를 설정하는 것입니다.

단점은 해당 폴더의 하위 리소스 폴더를 선언하기 전에 컨테이너 리소스 폴더를 선언 할 수 없다는 것입니다.

아래는 데모의 build.gradle 파일에있는 sourceSets 블록입니다. 하위 폴더가 먼저 선언됩니다.

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

중첩 된 자원 그림

또한 실제 리소스 파일 (png, xml 레이아웃 등)의 직접적인 부모는 여전히 사양 과 일치해야합니다.

출처 : https://stackoverflow.com/questions/4930398/can-the-android-layout-folder-contain-subfolders
728x90
반응형