向下滚动到recyclerview时如何更改工具栏的标题?

时间:2018-06-25 06:09:23

标签: android android-recyclerview

我想要实现的是将工具栏标题更改为我的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();
    }
}

适配器中的列表数据将包含标题项和释放项。

1 个答案:

答案 0 :(得分:0)

您可以使用RecyclerView.addOnScrollListener()

  

添加一个侦听器,该侦听器将在滚动状态或位置发生任何变化时收到通知。

示例代码

if (preg_match("/<img src=(.*jpg$)>/i", $data, $titleb)) { $bild = $titleb[1]; }
相关问题