بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

کمک در مورد Fragment

مدیریت گفتگو
HoCoder 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام

من توی اپم از یک Fragment استفاده کردم و 8 تب هم دارم و برای هر تب یک نمونه از این Fragment رو براش ساختم و از ViewPager استفاده کردم برای نمایش اطلاعات

و من میخوام که اطلاعات هر تب رو وقتی که روی اون تب اسکرول شد رو از اینترنت بگیرم بسته به Position ویوپیجری که داخلش هست و نمیخوام که برای هر تب یک Fragment ایجاد کنم و میخوام یک Fragment داشته باشم و نمونه ها رو از همون بسازم و اطلاعات رو نشون بدم

نمایش اطلاعات هم همه با یک نوع از RecyclerView انجام میدم و مشکلی سر این غضیه نیست.

آیا این راه امکان پذیر هست که من فقط با داشتن یک Fragment بتونم اطلاعات مختلف بسته به Position ویوپیجر از اینترنت بگیرم و نمایش بدم؟

اگه هست لطفا راهنمایی کنید

ممنون

نظرات

HoCoder 10 سال پیش
دوستان کسی راه حل خوبی داره شدیدا منتظر کمکتون هستم

پاسخ‌ها 1

SaeiD-as 10 سال پیش

سلام

کاری که من انجام دادم:

متد زیر رو داخل فرکمنتم نوشتم:

 public static Fragment instance(String catId) {
        Fragment fragment = new Fragment();
        Bundle data = new Bundle();
        data.putString("catId", catId);
        fragment.setArguments(data);
        return fragment;
    }

داخل layout فرگمنتم برای هر بخش یک لایه درست کردم و داخل لایه هام ویو مد نظرم رو ایجاد کردم و دست آخر قابلیت نمایش اونها رو GONE قرار دادم

در متد onCreate دیتا وارد شده رو خوندم و با توجه به مقدار اون ویو مد نظرم رو VISIBLE قرار دادم

 catName = getArguments().getString("catId");
switch(catName){
case name1:
layout1.setVisibility(View.VISIBLE);
break;
case name2:
layout1.setVisibility(View.VISIBLE);
break;
.
.
.
}

با این روش مشکلم حل شد و نیازی به تعریف فرگمنت های مجزا نیست؛ البته ممکنه راه حل های بهتری هم باشه که من بی اطلاعم

موفق باشید

نظرات

HoCoder 10 سال پیش
ممنون بابت راهنمایی که کردین ایده ی خوبیه و منتظر میمونم که بقیه دوستان هم ایده هاشون رو بگن تا به یه راه کار خوب و کارساز برسیم، دوستان عزیز منتظرم

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