基于功能

时间:2017-10-06 01:04:42

标签: android android-layout

我目前正在使用默认的android文件夹结构。现在,管理活动和观点变得非常困难。我想知道是否有办法按功能构建我的项目布局和活动。

例如:

以下是我目前的项目结构。

Java
  -Activity
    OrderListActivity.java
    ProductListAcitvity.java
Res
  -Layout
    OrderListView.xml
    ProductView.xml

我正在尝试找到一种方法将视图和活动组合到同一个文件夹中,如:

 Java
  -Features
    -OrderList
        OrderListActivity.java
        OrderListView.xml
    -Products
        ProductListActivity.java
        ProductView.xml

这种结构可以用gradle吗?如果可以的话,请提供一些样本gradle设置来实现这一点。

由于

3 个答案:

答案 0 :(得分:1)

您不能将包含布局文件的java源文件放在同一目录中。但是,您可以按照应用build.gradle中的轻微黑客的功能组织每个布局。

首先,为res目录中的布局创建根目录。名称应为layouts

res/layouts

然后,您可以根据功能为布局创建目录。我们使用OrderListProducts。每个目录都需要一个布局目录。现在在layouts中创建目录,如下所示:

res/layouts/orderlist/layout
res/layouts/products/layout

然后,将以下代码添加到您的应用build.gradle:

android {

     ...

      sourceSets {
        main {
          res.srcDirs = ['src/main/res',
                         'src/main/res/layouts',
                         'src/main/res/layouts/orderlist',
                         'src/main/res/layouts/products',
        }
      }

   ...

}

将项目更改为项目视图,如下所示:

enter image description here

同步您的项目以更新build.gradle。现在,您可以在orderlistproducts

中添加布局

答案 1 :(得分:0)

总之,不可能。

如果您的应用包含大量文件,您可以将它们分成不同的模块。

答案 2 :(得分:0)

您不能在同一文件夹中包含xml资源的java文件。它们属于不同的类别。您可以做的是使用适当的命名约定将xml文件与其对应的java文件相关联。