如何避免android xml中的代码重复

时间:2016-06-09 07:11:11

标签: android android-layout code-reuse

我有一个Android应用程序,我几乎在所有活动中都有侧边菜单。为此,我必须使用抽屉布局和一些其他项目来跟随我的活动xml以获得一致的UI。 例如

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

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

        <include layout="@layout/toolbar"
            android:id="@+id/toolbar_container"/>

        <<--ACTIVITY_XML-->>

    </RelativeLayout>
</android.support.v4.widget.DrawerLayout>

有没有办法不反复复制代码。

我想到了一种方法,用include标签替换<<--ACTIVITY_XML-->>。然后我会在我的基本活动中覆盖setContentView(),其中我会膨胀上面提到的基本布局,然后在其中填充include标签。这在记忆和时间利用方面是好还是坏。

1 个答案:

答案 0 :(得分:1)

有两种方法:

  1. 覆盖超级活动类中的 setContentView ,并从代码中扩充根布局中的实例活动布局。
  2. 除了合并标记外,还可以使用包含标记,以便在每个活动布局中进行性能优化。
  3. 就个人而言,在我的应用程序中,我更喜欢覆盖setContentView以在每个活动中插入工具栏,为复制根布局的每个活动保留一个布局。

    在您的情况下,最好使用“root”布局来扩展自定义活动xml来集中代码。但是,如果将来例如你想要删除一个活动的抽屉,你将必须管理它。