如何动态创建视图组?

时间:2012-05-09 14:58:05

标签: java android listview footer viewgroup

我有一个列表视图。

我想添加页脚。

所以我创建了一个页脚xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="100px"
android:background="@drawable/background_news_list"
android:gravity="center" >

<ImageButton
    android:id="@+id/btn_more"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10px"
    android:background="@drawable/btn_more_news" />

</LinearLayout>

我希望将整个布局扩展到主java,但我设法只扩充按钮

footer = getLayoutInflater().inflate(R.layout.testing, null, false);
btnmore = (ImageButton)footer.findViewById(R.id.btn_more);

ListView lv = (ListView) findViewById(android.R.id.list);
lv.addFooterView(footer);

我的列表在此xml

<LinearLayout
    android:id="@+id/layout_content"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/layout_menu"
    android:layout_below="@id/layout_title"
    android:orientation="vertical" >

    <ListView
        android:id="@+android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>
</LinearLayout>

如何创建视图组以实现并变为这样?

footer = getLayoutInflater().inflate(R.layout.testing, parent, false);

这样我就可以使用自己的线性布局了。

2 个答案:

答案 0 :(得分:0)

您的帖子有点令人困惑,但我认为您只需要为您的LinearLayout添加一个ID:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/linlayoutid"
    android:layout_width="fill_parent"
    android:layout_height="100px"
    android:background="@drawable/background_news_list"
    android:gravity="center" >

<ImageButton
    android:id="@+id/btn_more"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10px"
    android:background="@drawable/btn_more_news" />

</LinearLayout>

然后抓住线性布局:

footer = getLayoutInflater().inflate(R.layout.testing, null, false);
LinearLayout ll = footer.findViewById(R.id.linlayoutid);

ListView lv = (ListView) findViewById(android.R.id.list);
lv.addFooterView(ll);

答案 1 :(得分:0)

我这样解决了它

footer = getLayoutInflater().inflate(R.layout.testing, lv, false);

这是因为

lv is the list id and it