自定义布局未显示

时间:2012-03-10 16:32:18

标签: java android android-layout

我正在尝试制作可重复使用的标头。这是我的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="wrap_content"
    android:background="@drawable/bg" >

    <ImageButton 
        android:id="@+id/imagebuttonforheader"
        android:layout_height="50dp"
        android:layout_width="50dp"
        android:layout_alignParentLeft="true"
        android:background="@drawable/back_button"
        />

    <ImageButton 
        android:id="@+id/imagebuttonforheader"
        android:layout_height="50dp"
        android:layout_width="50dp"
        android:layout_alignParentRight="true"
        android:background="@drawable/forward_button"
        />

</RelativeLayout>  

我为它做了一堂课:

public class Header extends RelativeLayout {
    Context context;
    Activity activity;

    public Header(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
        LayoutInflater li  = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        li.inflate(R.layout.header, null, false);
    }
}

然后将此布局添加到我的main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <my.testy.view.Header
        android:id="@+id/headerOnMain"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" >
    </my.testy.view.Header>

    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/headerOnMain"
        android:text="@string/hello" />
</RelativeLayout>

但它没有出现在应用程序上。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您必须将充气的布局附加到自定义类:

li.inflate(R.layout.header, this, true);