为GridViewLayout应用和创建多个视图

时间:2015-06-08 17:17:43

标签: java android android-viewholder

我尝试使用自定义适配器向feature 'Navigation' do let(:regular_user) { User.create!(name: 'A Regular User') } def sign_in(a_user) visit sign_in_url # fill out form click_button 'Sign In' end before(:each) do sign_in(regular_user) end scenario 'is possible' do visit root_path expect(page.has_content?('Quick Stats')) end end 添加两个不同的视图。

但是,我似乎无法正确引用headerview。当GridviewLayoutManager被调用时,它期待一个" ViewHolder"响应,但我真的想引用我创建的HeaderView

因为我无法访问正确的视图,所以我也无法在我调用的XML布局中引用onbindViewHolder

这是我的客户适配器类:

TextView

1 个答案:

答案 0 :(得分:0)

在我看来,isHeader()方法将始终返回0,因为您将String与整数进行比较。我假设你想要检查当前项目的位置为1。

请尝试使用此代码:

public boolean isHeader(int position) {
    return position == 1;
}

然后替换

if (isHeader(position) == 1)...

if (isHeader(position))...

我希望这会有所帮助。

修改

以上是有意的。抱歉。 在类定义中,ElementsAdapter.ViewHolder作为ViewHolder类型插入。这适用于正常的

ElementsAdapter.ViewHolder extends RecyclerView.ViewHolder

但不适用于

ElementsAdapter.HeaderHolder extends RecyclerView.ViewHolder

因为它没有扩展ElementsAdapter.ViewHolder。

您应该指定RecyclerView.ViewHolder作为通用类型来支持您的两种类型。