2012-07-31 47 views
0

我在想,如果以下可以在XML来实现:是否有可能将视图添加到xml包含的布局?

我有这个简单的布局类似以下内容:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:orientation="horizontal" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:text="Address: " 
    android:textSize="14dp" /> 

</LinearLayout> 

当我有这个布局在其他的XML,是可以添加其他的TextView中它,所以结果将如下所示:

地址:另一个textview的文本。

我想在xml中完成此操作,而不是通过编程方式。

我尝试以下操作:

  <include layout="@layout/mybaselayout" > 

       <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="20dp" 
        android:text="mylocalizedstring" /> 
      </include> 

这不工作,我会尝试一些不可能在这里XML做什么?

谢谢。

+0

如果我没有弄错,你应该可以把textview放在当前的下方。 – sbrichards 2012-07-31 06:36:33

+0

然后,你应该添加textView到这个布局......但我会说,以编程方式会更容易做到这一点。 – yahya 2012-07-31 06:36:39

+0

但我有这样的情况,就像有40个本地化的字符串用于第二个文本,但第一个文本总是相同的。所以我试图使用更少的代码。 – Niko 2012-07-31 06:41:20

回答

1

看起来像我想添加视图内包含的布局在XML中的方式是不可能的,唯一的方式来实现它,是以编程方式。

0
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
    > 
<TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="This is a 'sans' demo!" 
     android:typeface="sans" 
     /> 
<TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="This is a 'serif' demo!" 
     android:typeface="serif" 
     /> 
<TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="This is a 'monospace' demo!" 
     android:typeface="monospace" 
     /> 

    </LinearLayout> 
0

您可以使用<include>标签

<include layout="@layout/topbar" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
+0

是的,我包括该布局,但我也想在XML中添加另一个TextView。 – Niko 2012-07-31 06:42:34

0

你将不得不使用一些编码,如果你不想直接添加TextViewxml布局文件。如果您不止一次地包含您的布局,并且您只想添加TextView,则只有一些时间使用ViewStub

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:orientation="horizontal"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:text="Address: " 
     android:textSize="14dp" /> 
    <ViewStub 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:id="@+id/view_stub" 
     android:inflatedId="@+id/addr" 
     android:layout="@layout/text_view" /> 
</LinearLayout> 

text_view.xml布局文件

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" /> 

当你想显示TextView

TextView text_view = (TextView) ((ViewStub) findViewById(R.id.view_stub)).inflate(); 
text_view.setText(...); 
0

它充气,你一定能做到这样,在你的第二个XML文件,

<RelativeLayout> 
<include android:id="@+id/llone" layout="@layout/topbar"/> 
<TextView android:layout_toRightOf="@id/llone"></TextView> 
</RelativeLayout> 
相关问题