我想要实现的是将工具栏标题更改为我的recyclerview数据属于Google日历的新月份。例如,当一月的第一个数据在视图中滚动或滚动到顶部时,“一月”将成为工具栏的标题(我还没有决定)。为此,我一直在考虑将工具栏传递给recyclerview适配器,并在用户向下滚动列表时更改工具栏标题,因为我的数据结构良好且包含标题和数据。
我的JSON数据:
[ {
"m" : 6,
"name" : "June 2018",
"y" : 2018
}, {
"category" : 0,
"created_at" : 1528101463478,
"date" : 1528416000000,
"movie" : 12132,
"human" : "2018-Jun-08",
"id" : 153351,
"m" : 6,
"platform" : [ 14, 6 ],
"region" : 8,
"updated_at" : 1528101564611,
"y" : 2018
}, {...}]
我的适配器看起来像这样,我还不知道将代码放置在何处以更改滚动条上的工具栏,以及是否最好将其完全放置在适配器之外。
public class UpcomingsAdapter extends RecyclerView.Adapter<ReleaseHolder> {
public static final String TAG = UpcomingAdapter.class.getSimpleName();
public final static int TYPE_HEADER = 0;
public final static int TYPE_ITEM = 1;
private LayoutInflater mInflater;
private Context mContext;
// Data
private List<_Release> data;
public UpcomingAdapter(Context context) {
mContext = context;
mInflater = LayoutInflater.from(mContext);
}
public void setData(List<_Release> data) {
this.data = data;
}
@Override
public ReleaseHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ReleaseHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.release_item, parent));
}
@Override
public void onBindViewHolder(ReleaseHolder holder, int position) {
// holder.setDetails();
}
@Override
public int getItemCount() {
return data.size();
}
}
适配器中的列表数据将包含标题项和释放项。
答案 0 :(得分:0)
您可以使用RecyclerView.addOnScrollListener()
添加一个侦听器,该侦听器将在滚动状态或位置发生任何变化时收到通知。
示例代码
if (preg_match("/<img src=(.*jpg$)>/i", $data, $titleb)) { $bild = $titleb[1]; }