在xml的listview中添加页眉/页脚

Sco*_*pio 20 android listview footer

我知道如何在JAVA中添加页眉或页脚,但我想知道是否可以在XML中直接添加它.我不想模拟这个,但真的把它添加为页脚或标题!

ole*_*egr 14

不,我不认为这是可能的.基于ListView源代码,只有overScrollHeader/overScrollFooterXML属性可用.但这些属性只接受drawables.

如果您不想使用上/下布局的技巧ListView.您可以ListView在自定义中扩展和实现自己的页脚和页眉支持View.由于页脚和标题已经实现,因此并不难.您只需在自定义View的构造函数中添加XML属性解析.

  • 谢谢你的回答,我只想对此发表第二意见! (2认同)

And*_*nai 5

我只是试图实现相同的目标(保持我的代码更清晰,并使用XML作为标记和逻辑源代码),但我找到的唯一解决方案是在布局中的某处定义带有XML的标题视图,然后将其分离,将ListView作为标题放入.

例如,拥有这个XML:

<ListView android:id="@+id/myListView">
</ListView>

<LinearLayout android:id="@+id/myHeader">
    ....
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

您可以在代码中执行此操作:

ListView myListView = (ListView) findViewById(R.id.myListView);
LinearLayout myHeader = (LinearLayout) findViewById(R.id.myHeader);

// Let's remove the myHeader view from it's current child...
((ViewGroup) myHeader.getParent()).removeView(myHeader);

// ... and put it inside ListView.
myListView.addFooterView(myHeader);
Run Code Online (Sandbox Code Playgroud)

基本上,我们在这里做的只是将膨胀的LinearLayout与其父项分离,并将其设置为ListView标题子项.

这不是一个理想的解决方案,但它仍然比手动创建/膨胀标题更容易.如果你在一些"持有者"模式中使用它,这也利用了XML膨胀和查看重用的力量.

希望这有助于某人.

  • 当我尝试使用这种技术时,我遇到了崩溃.我不得不将标题布局放入单独的布局xml中. (3认同)