如何使xml定义可重用(某种模板)?

时间:2011-05-07 05:49:58

标签: android xml viewflipper


我的情况如下。我有一个Activity,其中包含三个主要部分。在此活动的顶部,有一个工具面板,其中包含两个ImageButtons。在活动的底部还有类似于顶部的工具面板。

此活动的主要组件位于屏幕的中心,LinearLayout包含3x3 ImageButtons网格。为了获得上下文,我快速描述了这些网格按钮的用途。

此3x3网格描述了特定日期此按钮的状态(让我们说切换按钮及其状态为开/关)。所以有一天你有一套3x3,它们在特定日期有自己的状态。

现在我想要实现的功能是允许用户分别在网格或日期之间滚动。我的想法是让ViewFlipper作为活动的主要组成部分(而不是LinearLayout)和一个或多个按钮网格。这就是我已经拥有的。我可以将3x3切换到另一个3x3(带状态)另一天。为此,我只需复制/粘贴我的3x3网格XML定义并将其作为子项来查看翻页(x次)。

我的想法是有一个3x3的定义并重复使用x次像一些一种模板,所以我可以说“我希望今天有另外一个3x3的状态,我想让它作为下一个孩子添加到ViewFlipper”。

为了这个目的(拥有3x3的组件)我简单地创建了扩展LinearLayour的类,并且在其中我想为按钮生成/重用3x3定义。当然我能够通过这个新类中的java代码来实现它,但是通过重用xml(最好是维护和读取)可以做到这一点吗?

我尝试使用{{1但这可能不是我想要的。

提前致谢

修改

以下是使用鳍状肢

的主要布局代码
LayoutInflater

对于这个fipper我添加了这个布局的视图(这个代码是通过LayoutInflater分配的。)

<ViewFlipper android:id="@+id/view_flip" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#FF0000">
    <!-- Here goes 9x9 cubbie layout programaticaly -->
</ViewFlipper>

编辑2

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="1">

<LinearLayout android:orientation="horizontal"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_weight="1" android:gravity="center">
    <LinearLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:orientation="vertical">
        <ImageButton android:id="@+id/life_att_1" style="@style/AttributeButton" />
        <TextView android:id="@+id/life_att_text_1" android:text="test"
            style="@style/AttributeText" />
    </LinearLayout>
    ...
</LinearLayout>
...
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

我在这里找到的唯一方法是将paddingLeft属性添加到包装器LinearLayout(请参阅编辑2)。我不认为这是正确的解决方案,而只是我目前找到的解决方案。