Android organizing layout resourse?

2019-07-09 23:39发布

问题:

I'm trying to organizing layout resource.

Following: - res/layouts - res/layouts/activities - res/layouts/fragments
- res/layouts/other

But my gradle is only creating "activities" directory.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "com.example.khash.viewpagerexample"
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main{
            res.srcDirs = [
                    'src/main/res/layouts/activities',
                    'src/main/res/layouts',
                    'src/main/res/layouts/fragments',
                    'src/main/res/layouts',
                    'src/main/res'
            ]
        }
    }
    }

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:design:26.0.0-alpha1'
}

How i can add all(activities, fragment , other, main) directory to res.

回答1:

Try this :

  1. Change android -> Project

  2. Rename layout -> layouts

  3. Create new directory inside layouts named it as activities and fragments.(this folder names is sync with gradle. use same name as used in gradle.)

  4. Create layout directory in each directory you have created in layouts.

  5. Put your xmls as you want in your directory.

Gradle file: build.gradle(app)

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


回答2:

Best Practice : Create prefix like as follows

  • Activity Layout name start with activity_
  • Fragment Layout name start with fragment_
  • Adapter Layout row name start with list_
  • Dialog Layout name start with dialog_
  • Other Layout start with content_

    After then Install Android Studio Plugin ( Android File Grouping )