为include设置布局属性

时间:2011-02-17 11:54:46

标签: android android-layout

在我的Android应用中,我在一个单独的XML文件中声明了一个自定义视图。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
android:id="@+id/download_interval_setter" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<Button 
    android:layout_height="wrap_content"  
    android:layout_width="wrap_content" 
    android:id="@+id/Button_interval_up"
    style="?android:attr/buttonStyleSmall">
</Button>
<EditText 
    android:id="@+id/Download_interval" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:text="1"
    android:numeric="integer">
</EditText>
<Button 
    android:id="@+id/Button_interval_down"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
</Button>
</LinearLayout>

然后我有我的main.xml文件,我希望包含上面XML中声明的视图,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ToggleButton android:layout_height="wrap_content" 
        android:id="@+id/XMLStart" 
        android:textOn="@string/auto_update_on"
        android:textOff="@string/auto_update_off" 
        android:layout_width="wrap_content" />
<include layout="@layout/download_interval_setter"
        android:layout_toRightOf="@id/XMLStart"/>
<Button android:layout_height="wrap_content" 
        android:id="@+id/ShowRadars" 
        android:text="@string/show_radars" 
        android:layout_width="wrap_content" 
        android:layout_below="@id/XMLStart"/>       
<Button android:layout_height="wrap_content" 
        android:id="@+id/ShowAccidents" 
        android:text="@string/show_accidents" 
        android:layout_width="wrap_content" 
        android:layout_toRightOf="@id/ShowRadars"
        android:layout_below="@id/XMLStart"/>
<Button android:layout_height="wrap_content" 
        android:id="@+id/ShowConstraints" 
        android:text="@string/show_constraints" 
        android:layout_width="wrap_content" 
        android:layout_below="@id/ShowRadars"/>     
<Button android:layout_height="wrap_content" 
        android:id="@+id/ShowPatrols" 
        android:text="@string/show_patrols" 
        android:layout_width="wrap_content" 
        android:layout_below="@id/ShowRadars"
        android:layout_toRightOf="@id/ShowConstraints"/>    
</RelativeLayout>

正如您所看到的,我正在尝试设置包含视图的layout_toRightOf属性,但未设置,因为我在hierarchyviewer中也可以看到

另一方面,如果我只是将download_interval_setter.xml文件的内容复制粘贴到main.xml并在那里声明layout_toRightOf参数,那么视图将按照我的意愿定位在右边。

我哪里错了? 感谢

3 个答案:

答案 0 :(得分:4)

所以,我找到了答案here

答案 1 :(得分:0)

您必须在包含的xml文件中使用RelativeLayout作为根布局,因为android:layout_toRightOf不能与LinearLayout一起使用。

答案 2 :(得分:0)

您尚未指定包含布局的宽度和高度