3

我在一张幻灯片上有片段“传入” viewpager。此片段包含一个RecyclerView填充有custom-relative-layouts. LinearLayoutManager方向是垂直的。

我在上述查看器的下一张幻灯片上有第二个片段“查找”。“查找”将由两个回收站视图组成。它将Horizontal recyclerview充满cardviews(快速加载个人资料图片)。在此之下,我正在更慢地加载另一个recyclerview,与custom-relative-layout“传入”片段中的相同。

那有意义吗?我再详细说明一下:

问题是对于这三个recyclerview,我应该RecyclerAdapter为每一个声明一个新的吗?我问的原因是他们都有未知的变量 item_counts。

这是我用于“传入”的 RecyclerAdapter:

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder>{
    private Context mContext;

    public RecyclerAdapter(Context context, List<Incoming> items) {
        mContext = context;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public ViewHolder(View v) {
            super(v);
            // Define all of the components in the view
        }

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater mInf = LayoutInflater.from(mContext);
        View customView = mInf.inflate(R.layout.item_layout_incoming, parent, false);

        final ViewHolder vh = new ViewHolder(customView);

        return vh;
    }

    @Override
    public int getItemCount(){ return 6; } // THIS IS TEMPORARY; WILL BE VARIABLE

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        // Replace contents
    }

对于我的标准,我应该为我创建另一个适配器horizontal-cardview-recyclerview吗?这似乎是重复的,但除此之外,我将如何处理充气cardviewitem_layout_incoming

似乎应该有一种干燥的方式来做到这一点,而不会影响性能。谢谢

4

1 回答 1

4

您正在使用片段,因此您将创建该类的 2 个对象。所以这是一样的。您只需通过减少将新类加载到内存然后创建其对象的任务来减少编译器负载。Adapter由于两个原因,最好使用两个不同的。

  1. 你的代码会变得丑陋,我的意思是太拥挤了,如果出现其他情况的话。
  2. 将来,如果您需要更改布局中的某些内容,那么如果相同的适配器类,它将再次影响所有对象。

所以我的建议是编写开发人员友好的代码并创建两个类。

于 2016-04-27T04:10:18.813 回答