Android 我的RecyclerView内部表格仅显示一项
我的Android 我的RecyclerView内部表格仅显示一项,android,android-recyclerview,android-viewpager,android-tablayout,Android,Android Recyclerview,Android Viewpager,Android Tablayout,我的表格布局中有许多选项卡,但每个选项卡上只包含一个项目。它显示数据列表大小大于1,并且myRecyclerView项目高度为wrap\u content 下面是我如何生成选项卡的 TabPagerAdapter adapter = new TabPagerAdapter(getSupportFragmentManager()); for (Plan plan: offersPojo.getPlans()){ if (plan.getPlan().getE
表格布局中有许多选项卡,但每个选项卡上只包含一个项目。它显示数据列表大小大于1,并且myRecyclerView
项目高度为wrap\u content
下面是我如何生成选项卡的
TabPagerAdapter adapter = new TabPagerAdapter(getSupportFragmentManager());
for (Plan plan: offersPojo.getPlans()){
if (plan.getPlan().getError() == null)
adapter.addFragment(OffersItem.newInstance(plan), plan.getName());
}
viewPager.setAdapter(adapter);
我的TabPagerAdapter
public class TabPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public TabPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
public class OffersItemAdapter extends RecyclerView.Adapter<OffersItemAdapter.MyViewHolder> {
List<Datum> data = null;
Activity activity = null;
public OffersItemAdapter(List<Datum> data, Activity activity) {
this.data = data;
this.activity = activity;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.offers_item, parent, false);
return new MyViewHolder(v);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Datum itemData = data.get(position);
holder.heading.setText(itemData.getRechargeShortdesc());
holder.offerContent.setText(itemData.getRechargeLongdesc());
holder.offerAmount.setText(itemData.getRechargeAmount());
holder.offerValidity.setText(String.format("Validity: %s", itemData.getRechargeValidity()));
}
@Override
public int getItemCount() {
return data.size();
}
static class MyViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.offerTextHead)
TextView heading;
@BindView(R.id.offerContent)
TextView offerContent;
@BindView(R.id.offerAmount)
TextView offerAmount;
@BindView(R.id.offerValidity)
TextView offerValidity;
public MyViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}
我已调试,但数据列表大小大于1 这是我的错误。我将布局管理器的方向设置为水平而不是垂直。我知道这不是一个项目。但我把它和标签项目弄错了。很抱歉你投了反对票
所以我改变了
RecyclerView.LayoutManager mPMLayoutManger = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
到
根据我的理解,您在回收器视图中一次只能看到一个,因为您将LayoutManger属性设置为水平,这意味着您可以水平滚动列表,因此您需要将布局管理器设置为垂直,如下所示:
RecyclerView.LayoutManager mPMLayoutManger = new LinearLayoutManager(getActivity());
mRecyclerView.setLayoutManager(mPMLayoutManger);
在项目布局中设置要将内容包装到的宽度ConstraintLayout@Pavya不,它不起作用
RecyclerView.LayoutManager mPMLayoutManger = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
RecyclerView.LayoutManager mPMLayoutManger = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
RecyclerView.LayoutManager mPMLayoutManger = new LinearLayoutManager(getActivity());
mRecyclerView.setLayoutManager(mPMLayoutManger);