更好的做法:重复使用RecyclerViewAdapter或单独的实例?

时间:2016-04-27 03:46:26

标签: android android-recyclerview recycler-adapter recyclerview-layout

我在viewpager的一张幻灯片上有片段“Incoming”。此片段包含RecyclerView,其中填充了custom-relative-layoutsLinearLayoutManager方向为垂直方向。

我在所述viewpager的下一张幻灯片上有第二个片段“Find”。 “查找”将包含两个回收视图。它将Horizontal recyclerview填充cardviews(快速加载个人资料图片)。在其下方,我使用recyclerview加载另一个custom-relative-layout的速度更慢,与“传入”片段中的相同。

这有意义吗? 我会详细说明一下:

问题是针对这三个回收者视图,我应该为每个视图声明一个新的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的膨胀?

似乎应该有一种干嘛的方法来做到这一点,而不是达到性能。感谢

1 个答案:

答案 0 :(得分:3)

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

  1. 你的代码会变得丑陋我的意思是如此拥挤,如此多     否则条件。
  2. 将来,如果您需要在布局中更改某些内容,请再次进行更改     如果相同的适配器类将影响所有对象。
  3. 所以我的建议是开发人员友好代码并创建两个类。