PDA

View Full Version : نمایش یک fragment در view pager



sajadpm
سه شنبه 08 بهمن 1392, 19:35 عصر
با سلام و خسته نباشید خدمت دوستان

من به یک مشکل برخوردم و کلی هم اینترنت رو گشتم ولی راه حل درستی پیدا نکردم ، گفتم اینجا هم بگم شاید کسی بتونم کمک ام کنه ؛ از page tab strip و view pager در پروژه ام استفاده می کنم که در هر fragment هم از asynctask استفاده کرده ام ( یعنی اطلاعاتی رو در asynctask پردازش می کنم) حالا مشکل من اینجاست که وقتی fragment اصلی رو لود میشه fragment بعدی که میشه tab بعدی نیز load میشه ! در واقع این کار درسته چون وقتی از view pager استفاده میشه به خاطر انیمیشن slide اش باید fragmnet بعدی رو load کنه . میشه کاری کرد وقتی fragmnet بعدی به صورت کامل در صفحه قرار گرفت asynctask اطلاعات رو پردازش کنه ؟ مانند کاری که الان بازار در ورژن جدید اش انجام داده است !

تشکر و سپاس پیشاپیش از راهنمایی شما

smemamian
سه شنبه 08 بهمن 1392, 19:55 عصر
از این تابع واسه ViewPager استفاده کن(مقدار بعد و قبلشو نگه دار) :
@Override
public void onPageSelected(int currentpage) {
if(lastPage>currentpage)
//karbar be samte chap rafte
else(lastPage<currentpage)
//karbar be samte rast rafte
lastPage=currentpage ;
}

rubiks.kde
سه شنبه 08 بهمن 1392, 20:01 عصر
ابتدا از عنوان مناسب برای تاپیک استفاده کنید تا گویای محتوا باشه.

برای این کار هم بجای اینکه آسینک رو داخل خود فرگمنت اجرا کنید داخل کلاس اصلی اجرا کنید(آسینک رو داخل فرگمنت تعریف کنید ولی اجرا نکنید).منظورم اینه که برای view pager تابع setOnPageChangeListener رو بنویسید و وقتی page تغییر کرد و به فرگمنت مورد نظر رسید از طریق آداپتور view pager به فرگمنت دسترسی پیدا کنید و با استفاده از یک تابع که برای اجرای آسینک در فرگمنت نوشتید اون رو اجرا کنید.