RecyclerView中嵌套列表的一种实现方式,现在这个RecyclerView的主布局中最简单的定义布局,记载一下,方便使用。
一、创建Adapter
public class FmBackFeeAdapter extends BaseQuickAdapter<FmBackRoomBean.FmContractBillListBean, BaseViewHolder> {
private LinearLayout mLlContain;
private Context mContext;
public FmBackFeeAdapter(@LayoutRes int layoutResId, @Nullable List<FmBackRoomBean.FmContractBillListBean> data, Context context) {
super(layoutResId, data);
this.mContext = context;
}
@Override
protected void convert(BaseViewHolder helper, FmBackRoomBean.FmContractBillListBean item) {
mLlContain = helper.getView(R.id.ll_contain);
int position = helper.getPosition();
setOtherMoney(item, position);
}
public void setOtherMoney(FmBackRoomBean.FmContractBillListBean item, int position) {
mLlContain.removeAllViews();
if (item != null) {
LayoutInflater from = LayoutInflater.from(mContext);
if (null != item.getFmContractBillItemList() && item.getFmContractBillItemList().size() > 0) {
for (int i = 0; i < item.getFmContractBillItemList().size(); i++) {
View view = from.inflate(R.layout.include_tui_huan_shouitem, null, false);
TextView fee_title = (TextView) view.findViewById(R.id.fee_title);
TextView fee_num = (TextView) view.findViewById(R.id.fee_num);
TextView fee_status = (TextView) view.findViewById(R.id.fee_status);
RelativeLayout ll_include = (RelativeLayout) view.findViewById(R.id.ll_include);
String signName = item.getFmContractBillItemList().get(i).getTitle();
fee_title.setText(signName);
if (0 != item.getFmContractBillItemList().get(i).getClearMoney()) {
fee_num.setText(StringUtil.doubleTrans(item.getFmContractBillItemList().get(i).getClearMoney()));
if (2 == item.getFmContractBillItemList().get(i).getReceivablesStatus()) {
fee_status.setText("退");
} else {
fee_status.setText("收");
}
} else {
fee_num.setText("");
}
int finalI = i;
ll_include.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (null != clickLister) {
clickLister.click(position, finalI);
}
}
});
mLlContain.addView(view);
}
}
}
}
public ClickLister clickLister;
public interface ClickLister {
void click(int position, int i);
}
public void setClickLister(ClickLister clickLister) {
this.clickLister = clickLister;
}
}
二、两个布局
1、RecyclerView主布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_50"
android:background="@color/color_white"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_contain"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"></LinearLayout>
</RelativeLayout>
2、adapter中加载的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_include"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_50"
android:background="@color/color_white"
android:orientation="vertical">
<TextView
android:id="@+id/fee_title"
style="@style/text_171422_14_style"
android:layout_centerVertical="true"
android:paddingLeft="@dimen/dp_15"
android:text=""/>
<TextView
android:id="@+id/fee_status"
style="@style/text_171422_14_style"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/fee_num"
android:paddingRight="@dimen/dp_8"
android:text=""
android:textColor="@color/color_ff873f"/>
<TextView
android:id="@+id/fee_num"
style="@style/text_171422_14_style"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:drawablePadding="@dimen/dp_5"
android:drawableRight="@drawable/right_date"
android:hint=""
android:paddingRight="@dimen/dp_15"
android:text=""/>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_alignParentBottom="true"
android:background="@color/color_dfe2e7"/>
</RelativeLayout>