رفتن به مطلب
  • 0

لود مجدد دیتا با paging3


Rezaqweryu

سوال

سلام دوستان

بنده در اپ از ساختار باتم نویگیشن و فرگمنت ها استفاده کردم،برای فرگمنت اصلی یه ریسایکلر ویو دارم که دیتا رو از سرور با کتابخانه paging3 لود میکنه و نمایش میده زمانی که روی یک آیتم در ریسایکلر ویو کلیک میکنم یا به فرگمنت بعدی میرم اطلاعات دوباره لود میشه و گاهی اوقات از ایتم اول ریسایکلر ویو شروع میشه گاهی اوقات هم state خودشو حفظ میکنه و برای جابجایی بین فرگمنت ها هم از navigation components استفاده کردم حالا چطور میتونم کاری کنم که دوباره اطلاعات لود نشه و موقعیت ریسایکلر ویو حفظ بشه

ممنون از دوستان

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام و درود. من معمولا توی پروژه هام اگه ترکیب باتم نیو و فرگمنت داشته باشم از کتابخونه زیر استفاده میکنم که خیلی عالیه و مشکل لود مجدد هم نداره.

https://github.com/ncapdevi/FragNav

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۹/۲۴ در 02:08، محمدرضا شاهپیری گفته است:

سلام و درود. من معمولا توی پروژه هام اگه ترکیب باتم نیو و فرگمنت داشته باشم از کتابخونه زیر استفاده میکنم که خیلی عالیه و مشکل لود مجدد هم نداره.

https://github.com/ncapdevi/FragNav

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

ممنون از پاسخ گوییتون 

من در متد on view created متغیر ها رو مقداردهی میکنم مثل آداپتر و ویو مدل و گرفتن اطلاعات از سرور و ...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۹/۲۴ در ۰۲:۳۷، Rezaqweryu گفته است:

ممنون از پاسخ گوییتون 

من در متد on view created متغیر ها رو مقداردهی میکنم مثل آداپتر و ویو مدل و گرفتن اطلاعات از سرور و ...

پس مشکل از نحوه جابه جا شدن بین فرگمنتها هست. احتمالا replace میکنید. از کتابخونه ای که گذاشتم استفاده کنید مشکلتون حل میشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب شما میتونید اطلاعات رو تو یه لیست یا مپ یا هرچی که امکانش رو دارید بریزید و اون رو استاتیک کنید تا همه جا هم در  دسترس داشته باشیدش ، 

و زمان دریافت آیتم ها اول چک کنید اگه متغیرلیستتون Null بود اطلاعات رو بگیرید و در غیر اینصورت از اطلاعاتی که از قبل ذخیره کردین استفاده کنید

برای تغییر موقعیت هم شما یه باندل بساز و state ریسایکلر رو زمان Onpause ذخیره کن وزمان resume هم لود : 

public class ExampleAct extends AppCompatActivity
{
    private final String keyRecyclerState = "recycler_state";
    private RecyclerView mRecyclerView;
    private static Bundle bundleRecyclerState;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
		//code hae khodetun

    }

    @Override
    protected void onPause()
    {
        super.onPause();

        // zakhire state 
        mBundleRecyclerViewState = new Bundle();
        Parcelable listState = mRecyclerView.getLayoutManager().onSaveInstanceState();
        mBundleRecyclerViewState.putParcelable(KEY_RECYCLER_STATE, listState);
    }

    @Override
    protected void onResume()
    {
        super.onResume();

        // restore kardane state
        if (mBundleRecyclerViewState != null) {
            Parcelable listState = mBundleRecyclerViewState.getParcelable(KEY_RECYCLER_STATE);
            mRecyclerView.getLayoutManager().onRestoreInstanceState(listState);
        }
    }
}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...