0

我的应用程序的测试版本与生产版本有几个不同的功能。我在主要活动中使用静态常量来区分它们:

static final boolean TestingBuild = true;
// ...
if ( TestingBuild ) {
    initNewFeature();
}

但是这两个版本也需要 XML 布局文件的差异。例如,测试版本需要一个按钮来激活新功能。我该如何解决这个问题?

我目前的解决方案是根据 加载不同的 XML 文件TestingBuild,但这会导致大量重复的 XML 代码。此外,当我需要进行更改时,我需要编辑两个 XML 文件而不是一个。

4

1 回答 1

0

对于您的情况,没有其他方法可以使用多个 XML 布局。但是你可以通过使用includemerge标签来去除重复的代码。

定义一个可发布的布局并包含您的测试布局,其中一些视图仅用于测试。

像这样的东西:

测试布局:

<Button
    android:layout_height=".."
    android:layout_width=".."
    ...
/>

测试布局是一个简单的例子。如果您愿意,可以使用周围的 ViewGroup。

发布布局:

<LinearLayout
      android:layout_height="match_parent"
      android:layout_width="match_parent">

      <TextView.../>
      <Button.../>
      <include layout="@layout/testing"
          <!-- here you can redefine android:layout_ tags of the included layout -->
      />
</LinearLayout>

有了这个,您可以添加 UI 的一部分而无需重复代码,这更好地使用和维护。但是您仍然需要两种布局,一种用于不包含包含的发布,另一种用于包含包含的测试。自己决定哪个可以节省更多代码以将测试包含在发布布局中或以其他方式。

于 2013-09-19T07:57:49.697 回答