【问题标题】:different views on a single list ( Android )单个列表上的不同视图(Android)
【发布时间】:2010-06-29 20:41:58
【问题描述】:

有没有办法制作一个包含不同视图的列表? 我的意思是位置 X 中的行将具有布局“X.xml” 并且行号 Z 将具有布局“Y.xml”?

我尝试了几种方法来操作 ListRowAdapter() 和 getView() 但没有成功...

【问题讨论】:

  • @user379425 你能不能选择 CommonsWare 的答案是正确的(假设它按照它所说的那样做)

标签: android list layout


【解决方案1】:

你好,有没有办法用 不同的看法?我的意思是那一行 位置 X 将具有布局“X.xml” 并且行号 Z 将具有布局 “Y.xml”?

当然。

第 1 步:通过扩展 BaseAdapterArrayAdapterCursorAdapter 等创建一个 Adapter 类。

第 2 步:实现 getViewTypeCount() 以返回有多少不同的行类型

步骤#3:实现getItemViewType()以返回一个介于0getViewTypeCount()返回的值之间的数字,指示给定位置将使用哪种行类型

第 4 步:覆盖 getView()(或 newView()bindView() for CursorAdapter)并让它创建正确的行

【讨论】:

【解决方案2】:

我认为没有一种简单的方法可以开箱即用。根据您的布局有多么不同,您可能会想出一个布局,然后根据行在 getView 中显示或隐藏它的元素。如果您将某个项目设置为 Layout.GONE,就好像它不存在一样。

【讨论】:

  • 这是我目前拥有的,但我需要改变它 - 一种布局只是一个 TextView,另一种是 6..
【解决方案3】:

我用另一种方式解决了它: 在 ListRowAdapter -> getView() 我在充气机上做了一个 if() 声明:

LayoutInflater inflater=context.getLayoutInflater();
View row=inflater.inflate(R.layout.X, null);
if(somthing)
{
row=inflater.inflate(R.layout.Y, null);
//whatever
}
and in the end: return row;

像魅力一样工作:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2013-09-28
    • 2017-02-16
    相关资源
    最近更新 更多