2011-12-17 155 views
1

这似乎是一个简单的问题,我应该能够找到轻松,但我无法确切地了解如何创建Android的可重复使用的UI组件。具体来说,我试图创建这个片段,我使用EVERYWHERE到一个可重用的组件,使代码更小。如何创建一个可重用的UI组件

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingBottom="0dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:paddingTop="10dp">   
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:textColor="@color/text_normal" 
     android:id="@+id/my_text_id" 
     android:text="My field"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:textColor="@color/text_normal" 
     android:text="My value" 
     android:id="@+id/my_value_id"/> 

</RelativeLayout> 

这些像这样使用

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@color/background_normal" 
    android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
      <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingBottom="0dp" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp" 
      android:paddingTop="10dp">   
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:textColor="@color/text_normal" 
       android:id="@+id/my_text_id" 
       android:text="My field"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:textColor="@color/text_normal" 
       android:text="My value" 
       android:id="@+id/my_value_id"/> 

      </RelativeLayout> 
    </LinearLayout> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
      <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingBottom="0dp" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp" 
      android:paddingTop="10dp">   
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:textColor="@color/text_normal" 
       android:id="@+id/my_text_id2" 
       android:text="My field2"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:textColor="@color/text_normal" 
       android:text="My value2" 
       android:id="@+id/my_value_id2"/> 

      </RelativeLayout> 
      .... etc .... 
    </LinearLayout> 
</ScrollView> 

我希望能够访问这两个文本框里面将与<include />标签的布局被添加到设定值。有谁知道如何做到这一点?

我见过http://developer.android.com/resources/articles/layout-tricks-reuse.html,但我似乎没有看到如何分配在同一领域的多个。

任何帮助表示赞赏。

更新这些用于将TextView放在屏幕的左侧和右侧的另一个排列在一起。不知道如何描述它,但这些用在ScrollView中。

+0

你想在哪里重新使用这个布局?为标题栏还是? – 2011-12-17 06:21:34

+0

更新后的介绍 – Kirk 2011-12-17 07:02:00

回答

2

使用“包括”和“合并”到“注入”的布局到现有的布局。一旦你包含了,你可以引用视图,就像你已经在布局中一样。

如果你想“包括”相同的布局多次,那么你有两种选择:

a)使用ListView和一个适配器重复的观点 B)充气代码中的观点,并将它们添加通过使用addView()手动。当你膨胀每个视图时,可以使用findViewById在该视图中专门定位小部件。

相关问题