【问题标题】:Can I have a layout within a layout/merge layouts?我可以在布局/合并布局中有布局吗?
【发布时间】:2023-06-11 02:34:01
【问题描述】:

如果可能,如何在分配给 SimpleCursorAdapter 的布局上方添加“标题”(“ondemandandautomatic_authorize”),并在 ListView 下方添加按钮?

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this,
        R.layout.ondemandandautomatic_authorize, mContacts,
        new String[] { ContactsContract.Contacts.DISPLAY_NAME },
        new int[] { R.id.contactLabel });

setListAdapter(mAdapter);

我现在在我的 Activity 中显示的是:

<AppName>

<ckbx1><ckbx2><ckbx3><TextView (ContactName)>
...(repeating the line above for each contact)

但我想要的是:

<AppName>

<TextView1><TextView2><TextView3><TextView4>
<ckbx1>    <ckbx2>    <ckbx3>    <TextView (ContactName)>
...(repeating the line above for each contact)

<Button>

可能吗?

【问题讨论】:

    标签: android android-layout android-widget android-activity android-view


    【解决方案1】:

    使用 Listviewinstance.addHeaderView(viewtobeadded) 作为列表标题部分和 Listviewinstance.addFooterView(buttontobeadded) 页脚底部的按钮。

    请确保在您的列表视图上设置适配器之前必须完成这些页脚和页眉添加操作。

    【讨论】:

    • 我猜“viewtobeadded”可以是一个 ViewGroup,所以我可以把所有这些小部件都塞进去?
    【解决方案2】:

    如果您希望按钮位于列表底部here is the javadoc,您可能需要向 ListView 添加页脚。

    getListView().addFooterView(new Button(...));

    这必须在setListAdapter(mAdapter);之前完成。

    【讨论】: