使用几个RecyclerViews

时间:2017-07-25 10:30:01

标签: java android

在我的Android应用程序中,我一直在使用几个具有完全不同外观和要求的RecyclerViews。随着数量的增加,我想到了统一它们。所以我的问题是,对于具有不同要求的recyclerviews,我应该使用不同的适配器(布局文件不能相同)或像这样的一个通用适配器:

public class DataAdapter extends RecyclerView.Adapter < DataAdapter.ViewHolder > {
 variables...
 public DataAdapter(Context context) {

 }

 @Override
 public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  //   if(the_condition_to check_which_recycler_view)
  //   inflate a;
  //   else if(other_condition)
  //   inflate b;
  //   else ...
  return xyz;
 }
 @Override
 public void onBindViewHolder(final ViewHolder viewHolder, int i) {
  // if(the_condition_to check_which_recycler_view)
  //       do this;
  //       else if(other_condition)
  //       do this;
  //       else ...
 }
 @Override
 public int getItemCount() {
  return xyz;
 }

 public class ViewHolder extends RecyclerView.ViewHolder {
  //All Views Declared Here
  public ViewHolder(View view) {
   super(view);
   //AllViewsDefinedHere
  }
 }
}

我想问的另一件小事是我见过像FastAdapter这样的各种库,它们说它们简化了整个适配器的工作,但我无法理解它们是如何帮助的。手动适配器方法是否存在问题?

1 个答案:

答案 0 :(得分:0)

您可以按照模型 - 视图 - 演示者方法来满足您的要求。为每个viewType设置BaseViewHolderBaseAdapter以及不同的SecondaryViewHolders扩展BaseViewHolders

由于您说布局文件不能相同,SecondaryViewHolders将是独立的,并且将包含相应的布局文件。

您可以阅读this以获取更多详情

您可以找到完整的代码here