我尝试使用自定义适配器向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
答案 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
作为通用类型来支持您的两种类型。