我的应用程序中有一个列表,它是作为AbsListView实现的,因此当我们在较小的屏幕(手机)上工作时,它是一个列表,当我们在更大的屏幕(平板电脑)上时,它就是一个网格。 一切顺利。
现在我想添加一个与我列表中的常规项完全不同的标题项 - 它有一个完全不同的xml文件。它始终是列表中的第一项。
我已将代码添加到我的Adapter类中,如下所示:
public override View GetView(int position, View convertView, ViewGroup parent)
{
SavedInfo subViews = null;
var rowView = convertView;
var channel = items[position];
// don't want to reuse if our previous view was a header
if (rowView?.Tag != null)
{
subViews = rowView.Tag as SavedInfo;
}
// try to put in a different view if there is a header shown
// special id value for header is -1
if (position == 0)
{
subViews = null;
}
if (subViews == null)
{
if (position == 0)
{
rowView = context.Activity.LayoutInflater.Inflate(Resource.Layout.header_layout, null);
// Do setup stuff with this layout
rowView.Tag = null;
return rowView;
}
rowView = context.Activity.LayoutInflater.Inflate(cellLayout, null);
// Do stuff with regular layout, take savedInfo from Tag
rowView.Tag = subViews;
}
// other adjustments to the regular layout
return rowView;
}
所以在常规列表中没问题 - 我有一个标题项和许多常规项。但是,当我切换到GridView(使用相同的适配器)时,我的“标题”项目现在只是网格中的第一个单元格。
我想要它与列表视图中的内容大致相同 - 单个列填充屏幕宽度,然后是常规网格。关键是我想要一个填充所有列的项目,但向上滚动网格。有没有办法做到这一点?我知道我可能需要替换某种自定义适配器视图。有没有人有一个代码做一个网格的例子,一个项目填充多个网格列?
由于
答案 0 :(得分:0)
原来这是不可能的 - 建议放入标题的方法是在将ListView更改为RecyclerView时使用CoordinatorLayout和CollapsingToolbarLayout