是否可以将View添加到xml中包含的布局中?

时间:2012-07-31 06:33:52

标签: android android-layout

我想知道是否可以在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,因此结果如下所示:

地址:另一个文本视图的文本。

我想在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中尝试了一些不可能的事情吗?

感谢。

5 个答案:

答案 0 :(得分:1)

看起来我想在xml中添加视图的方式是不可能的,只有实现它的方法,就是以编程方式进行。

答案 1 :(得分: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>  

答案 2 :(得分:0)

如果您不想在TextView布局文件中直接添加xml,则必须使用某些编码。如果您多次添加布局,并且只想添加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(...);

答案 3 :(得分:0)

您肯定可以在第二个xml文件中执行此操作,

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

答案 4 :(得分:-1)

您可以使用<include>代码

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