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

این متد ها در ریساکلر ویو چه کاری را برای ما انجام می دهند؟

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

این متد ها در ریساکلر ویو چه کاری را برای ما انجام می دهند؟



:
@Override
public int getItemViewType(int position) {
return mItems.get(position).isHeader ?
VIEW_TYPE_HEADER : VIEW_TYPE_CONTENT;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view;
if (viewType == VIEW_TYPE_HEADER) {
view = inflator.inflate(R.layout.header_item, parent, false);
} else {
view = inflater.inflate(R.layout.content_item, parent, false);
}
return new ViewHolder(view);
}
+1 0
همیشه تمام آیتم‌های recyclerview یکی نیستن. برای مواقعی که بیش از یک نوع layout برای recycler داریم متد getItemViewType رو override می‌کنیم و بسته به موقعیت آیتم میگیم از چه نوعی هست. مثلا اگه بخوایم یکی درمیون آیتم‌هامون فرق کنن میگیم اگه زوج بود از نوع a و در غیر اینصورت از نوع b. متد onCreateViewHolder هم ViewHolder هست با این تفاوت که در آیتم‌های ورودی یک int میگیره که مشخص می‌کنه هر آیتم recyclerمون از چه نوعی هست. مثلا تو مثال شما اگه از نوع header باشه لایه header_item و اگه از نوع content باشه لایه content_item رو انتخاب می‌کنه. (9 سال پیش)
0 0
ممنونم از جواب کاملت ، حالا اگه بخوام شبیه تصویر توی این لینک لینک طراحی کنم ، چطوری میتونم با این دوتا متد کار کنم و چه تغییراتی رو توی اداپتور ریسایکلرم باید بدم؟ (9 سال پیش)
+1 0
برای header باید یه textview خالی بدون تصویر پشت زمینه باشه. برای content هم باید یک imageview کنار textview با تصویر پشت‌زمینه سفید باشه. و در نهایت یک الگویی باید باشه که آیتم‌هارو از روی position (یا شاید یک کار ابتکاری) تشخصی بده و متد getItemViewType مقدار درست رو ارسال کنه. (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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