use*_*744 8 java android scala android-recyclerview linearlayoutmanager
我RecyclerView
通过为页眉和页脚添加单独的布局来自定义.我创建了常量来确定适配器类中的页眉,页脚和列表项的属性.我还创建了一个ViewHolder模式,并根据视图类型指定要显示的布局.我通过覆盖getItemViewType
方法将标题固定在第0个位置和页脚最后位置的页脚.
我想让页脚元素可点击,所以我指定setOnClickListener(new View.OnClickListener())
并覆盖onClick(view: View)
我的目标是单击页脚和scrollToPosition
0或1(0 =页眉,1 =第一项元素).
那是MyAdapter的定义:
class MyAdapter(context: Context, data: Array[String]) extends RecyclerView.Adapter[RecyclerView.ViewHolder]
...
override def onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int): Unit = holder match {
...
case holder:FooterViewHolder =>
holder.backToTop.setOnClickListener(new View.OnClickListener() {
override def onClick (view: View) {
backToTop(???)
Toast.makeText (context, "Clicked Footer", Toast.LENGTH_SHORT).show()
}
})
...
}
...
Run Code Online (Sandbox Code Playgroud)
我读过我只需要这样做: recyclerView.getLayoutManager().scrollToPosition(position)
不幸的是我无法从Adapter类访问LayoutManager.任何想法我能做什么?
Kai*_*nov 18
另一种方法
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
this.recyclerView = recyclerView;
}
Run Code Online (Sandbox Code Playgroud)
按如下方式制作 MyAdapter 的构造函数。
MyAdapter myAdapter=new MyAdapter(context,list,mLayoutManager);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5348 次 |
最近记录: |