آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چگونه می توانیم در یک ریسایکلر ویو , ریسایکلرویو دیگری قرار دهیم؟

kazemian  9 سال پیش  9 سال پیش
0 0

سلام
فکر میکنم از عنوان سوال همه چی مشخص باشه

من میخوام چیزی شبیه به تصویر زیر طراحی کنم اما نمیدونم چطور باید یک ریسایکلر ویو رو توی ریسایکلر ویوی دیگه قرار بدم

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
YouNes Sh  9 سال پیش
+1 0

کافیه توی xml یه recyclerview بزاری و اونو همونطوری که recyclerview اولی رو مقدار دادی مقدار بدی

0 0
ممنونم از جوابت عزیز ، من برای ریسایکلر عادی یه آرایه تعریف میکردم و میگفتم مقدار هر ایتم ریسایکلر از این آرایه بگیره .اما اینجا هر ایتم ریسایکلر ویو خودش یک آرایه میخواد یه جورایی فک کنم آرایه ی تو در تو ، این رو باید چطوری بنویسم؟ (9 سال پیش)
پاسخ به سوال 
YouNes Sh  9 سال پیش
0 0

یه مدل بساز

public class SampleModel {
String subject;
List<String> listDovom;
public sampleModel(String subject, List<String> listDovom) {
this.subject = subject;
this.listDovom = listDovom;
}

public String getSubject() {
return subject;
}

public void setSubject(String subject) {
this.subject = subject;
}

public List<String> getListDovom() {
return listDovom;
}

public void setListDovom(List<String> listDovom) {
this.listDovom = listDovom;
}
}

بعد به recyclerview اولی اینجوری مقدار بده

 
RecyclerView recyclerView1 = (RecyclerView) findViewById(R.id.recyclerView1);
LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
recyclerView1.setLayoutManager(manager);
List<SampleModel> sampleModels = new ArrayList<>();
List<String> listDovom=new ArrayList<>();
listDovom.add("یک");
listDovom.add("دو");
sampleModels.add(new SampleModel("موضوع اول",listDovom));
sampleModels.add(new SampleModel("موضوع دوم",listDovom));

recyclerView1.setAdapter(new AdapterSample1(getApplicationContext(),samleModel));



بعد توی Adapter لیست اول. لیست دوم رو مقدار دهی کن :

 

public class AdapterList extends RecyclerView.Adapter<AdapterList.MyViewHolder> {

private Context mContext;
private List<SampleModel> sampleModels;


class MyViewHolder extends RecyclerView.ViewHolder {
TextView txtSubject;
RecyclerView recyclerView2;

MyViewHolder(View view) {
super(view);
txtSubject = (TextView) view.findViewById(R.id.txtSubject);
recyclerView2 = (RecyclerView) view.findViewById(R.id.recyclerView2);
}
}

public AdapterList(Context mContext, List<SampleModel> sampleModels) {
this.mContext = mContext;
this.sampleModels = sampleModels;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.row_list, parent, false);

return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {

final SampleModels item = sampleModels.get(position);
txtSubject.setText(item.getSubject());
LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
holder.recyclerView2.setLayoutManager(manager);
holder.recyclerView2.setAdapter(new AdapterSample2(mContext,item.getlistDovom()));
}
}

برای لیست دوم هم باید یه Adapter بسازی


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .