RecyclerView OnClick实施

时间:2015-02-23 07:04:14

标签: android material-design android-recyclerview

我使用RecyclerView创建列表,我经历了很多苦难,因为我看到了实现OnClickListener的不同方法,并且评论说非常耦合,非常棘手等等。

大约几天想着如何实现它,我做到了。

在我的Fragment上,实现View.OnClickListener和onClickEvent,当我实现RecyclerView.Adapter时,在构造函数中传递View.OnClickListener引用,如下所示:

    public RecyclerViewRepoListAdapter(View.OnClickListener fragmentListener, List<Repos> repoList){
        if (repoList != null){
            this.reposList = repoList;
            this.fragmentListener = fragmentListener;
        }
    }

之后,当我为不同的列表组件创建Holder时,我将Listener注册到每个(在本例中)LinearLayout,如下所示:

    @Override
    public ListItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //Inflate the corresponding layout
        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_repositories, parent, false);
        //OnClickListener
        itemView.setOnClickListener(fragmentListener);
        //Here modify the view like margins, paddings, view size and layout parameters
        //return the ViewHolder
        return new ListItemViewHolder(itemView);
    }

我的猜测是,您对此实施有何看法?

如果没问题,我希望这有助于另一个。

0 个答案:

没有答案