在片段中添加RecyclerView

时间:2016-10-14 13:00:50

标签: android-fragments android-recyclerview

我不知道我的头衔是否正确,但我希望你可以借助一些照片来解答我的问题。所以我有一个项目,它会显示一个包含书籍信息的片段,比如我们的标题,作者,出版商等,同时我想显示关于这本书的意见,一旦它加载。它还会加载一个Recyclerview,其中包含有关Google Play商店中的书籍的评论,您可以在其中查看不同用户的评论。我怎样才能做到这一点?我知道如何创建Recyclerview。这是图像更清晰。 this is the image

1 个答案:

答案 0 :(得分:1)

对于RecyclerView,您需要添加

  

compile' com.android.support:recyclerview-v7:24.2.1'

在您的依赖项中。在模块级内部build.gradle文件。添加编译文件后,同步您的项目。 然后在布局中添加recyclerView。喜欢这个

<android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_funds"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:listitem="@layout/layout_funds_item" />

此处属性&#34; listitem&#34;将展示如何在物品膨胀时看到您的回收者视图。

现在在您的活动或片段中初始化recyclerview。

    private RecyclerView mRecyclerView;
    mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_funds);

之后,您需要为recyclerview设置layoutManger。 LayoutManager负责在RecyclerView中测量和定位项目视图,以及确定何时回收用户不再可见的项目视图的策略。通过更改LayoutManager,RecyclerView可用于实现标准垂直滚动列表,统一网格,交错网格,水平滚动集合等。提供了几种库存布局管理器供一般使用。

mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

之后将适配器设置为recyclerview。

 mRecyclerView.setAdapter(new FundsAdapter(mContext));

以下是此FundsAdapter的代码示例。

public class FundsAdapter extends RecyclerView.Adapter<FundsAdapter.ItemHolder> {
    private Context mContext;

    public FundsAdapter(Context context) {
        mContext = context;
    }

    @Override
    public ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.layout_funds_item, parent, false);
        return new FundsAdapter.ItemHolder(view);
    }

    @Override
    public void onBindViewHolder(ItemHolder holder, int position) {
    }

    @Override
    public int getItemCount() {
        return 10;
    }

    public class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        private TextView vh_Title;
        private TextView vh_FundName;

        public ItemHolder(View itemView) {
            super(itemView);
            vh_Title = (TextView) itemView.findViewById(R.id.txt_fund_bank);
            vh_FundName = (TextView) itemView.findViewById(R.id.txt_fund_name);
            itemView.setOnClickListener(this);
        }

        @Override
        public void onClick(View view) {
            mContext.startActivity(new Intent(mContext, FundsDetailActivity.class));
        }
    }
}

希望你得到解决方案。 :)