ورود

View Full Version : مشکل با نمایش لیست ویو اختصاصی در فرگمنت + تغییر لایوت



parniaznet
چهارشنبه 05 فروردین 1394, 13:47 عصر
سلام
وقت بخیر

برای نمایش لیست ویو اختصاصی در اکتیویتی میومدیم از getView و LayoutInflater استفاده می کردیم و خب مشکلی نبود، اما اگه بخواهیم همین لیست ویو اختصاصی شده رو در یک فرگمنت نمایش بدیم باید چیکار کنیم؟!

چون نمیشه از getView استفاده کرد.


سوال دوم اینکه من 2 تا رادیو باتون استفاده می کنم و می خوام وقتی روشون کلیک میشه فایل لایوت اکتیویتی رو عوض کنم، همچین چیزی امکان داره؟ اگه نداره و باید اکتیویتی جدید باز شه ، چجوری میشه کاری کرد که اکتیویتی جدید در پنجره جدید باز نشه مثل حالت دیفالتی که رو اینتنت هست. و در واقع نمی خوام کاربر تغییری ببینه که حس کنه وارد یه صفحه جدید شده

eai-eiliya
چهارشنبه 05 فروردین 1394, 17:39 عصر
ببین activity و fragment ها خیلی شبیه هم هستن ، و این موضوع نمایش لیست ربطی به فرگمنت یا اکتیویتی بودن نداره.

توی اکتیویتی layout اصلی رو با setContenctView() مشخص می کنی ، در صورتی که توی فرگمنت ابتدا باید اون رو با LayoutInflater بسازی و بعد در متد onCreateView اون رو return کنی ،
اما بقیه چیز ها خیلی شبیه هم هست ، میتونی توی هر 2 لیست داشته باشی ، چیزی که لیست به اون نیاز داره آداپتر هست ، آداپتر دقیقا محتوی هست که قراره توی لیست نشون داده بشه ، و متد getView که نوشتی ، برای آداپتر هست نه اکتیویتی .
آداپتر ها یک کلاس هستند که در هر جایی از کد میتونی تعریفشون کنی و معمولا از BaseAdapter ارث بری می شوند ، وقتی که یک کلاس آداپتر درست می کنی و از BaseAdapter ارث بری می کنی ، نیاز هست که چند متد رو از جمله متد getView رو override یعنی بازنویسی کنی ، که در همین متد هست که از LayoutInflater استفاده می کنی تا ردیف های لیستت رو بسازی .
بد نیست نگاهی به این آموزش بندازی :
http://iact.ir/%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A2%D8%AF%D8%A7%D9%BE%D8%AA%D8%B1-%D9%84%DB%8C%D8%B3%D8%AA-%D9%88-%DA%AF%D8%B1%DB%8C%D8%AF-%D8%A8%D8%A7-baseadapter/