PDA

View Full Version : مشکل در استفاده از ViewPager



rubiks.kde
یک شنبه 16 تیر 1392, 12:02 عصر
سلام به همه دوستان.

من توی برنامم چنتا activity دارم که اونها رو میخوام به صورت viewpager مثل اون چیزی که توی عکس وجود داره در بیارم
106766

برای این کار هم از یه کتابخانه دارم استفاده میکنم به اسم Android-ViewPagerIndicator .

حال مشکلی که دارم سر اینه که نمیتونم از اکتیویتی بجای view استفاده کنم (یعنی توی هر page یه اکتیویتی باشه نه یه view)

مثلا یه چی شبیه این در بیاد
http://viewpagerindicator.com/feature_beautifulwidgets.png

shahin bahari
یک شنبه 16 تیر 1392, 13:17 عصر
برای این کار نیاز به لایبری خاصی نیست. با Fragment Activity و FragmentPagerAdapter میشه این رو پیاده کرد!
هر صفحه ای که میبینید چه اکتیویتی باشه چه فرگمنت از یک ویو ساخته شده! شما فایل layout.xml رو توی این ویو که دارید inflate کنید و .....
قسمتی از کدتون که نمیدونید باید چی کارش کنید رو بزارید تا دقیق تر بگم....

rubiks.kde
یک شنبه 16 تیر 1392, 14:14 عصر
برای این کار نیاز به لایبری خاصی نیست. با Fragment Activity و FragmentPagerAdapter میشه این رو پیاده کرد!
هر صفحه ای که میبینید چه اکتیویتی باشه چه فرگمنت از یک ویو ساخته شده! شما فایل layout.xml رو توی این ویو که دارید inflate کنید و .....
قسمتی از کدتون که نمیدونید باید چی کارش کنید رو بزارید تا دقیق تر بگم....

خیلی ممنون از پاسختون،ولی من کدی هنوز ننوشتم بیشتر روی مثال همین کتابخونه کار کردم که اونم از FragmentPagerAdapter استفاده میکنم. الان چیزی که برام قابل درک نیست استفاده از یه اکتیویتی توی هر پیچ هست.

در مثال های قبل که از tabhost استفاده میکردم هر تب یه اکتیویتی بود که با حرکت بین تب ها مثل این بود که ما اون رو استارت میکردید و عملیات هر تب رو توی همون اکتیویتی مربوط به اون می نوشتیم و ...
ولی الان توی این نوع مثال ما فقط میتونیم layout.xml رو با توجه به اینکه کدوم آیتم هست inflate کنیم ولی عملیات مربوط به اون رو همش باید توی آداپتور بنویسیم (البته این تصور من هست اگه نه شما یه توضیح بدید)

چیزی که من مدنظرم هست پیاده سازی یه چیزی مثل برنامه 1mobile هست ، نه یه اون شکل ولی ui برنامه شبیه به اون هست.مثلا 4 تا تب باشه مثل عکس بالا یکی rss رو نشون بده یکی دسته بندی و ...

اگه مثالی یا نمونه کدی دارید خوشحال میشم بهم کمک کنید.

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

shahin bahari
یک شنبه 16 تیر 1392, 17:02 عصر
من برای ساخت این چنین ui یه کلاس میسازم و از fragment pager adapter مشتقش میکنم.تمام صفحه هایی که لازم هست هم داخل این کلاس اضافه میشه.مثلا تو این مثال من کلاس First,Second,Third رو اضافه کردم.
public class SectionViewChanger extends FragmentPagerAdapter {

public SectionViewChanger(FragmentManager fm ) {
super(fm);
}

@Override
public Fragment getItem(int arg0) {
switch(arg0){
case 0 :
return new First();
case 1:
return new Second();
case 2:
return new Third();
}
return null;
}

@Override
public int getCount() {
return 3;
}

@Override
public CharSequence getPageTitle(int position) {
switch(position){
case 0:
return "First";
case 1:
return "Second";
case 2:
return "Third";
}
return super.getPageTitle(position);
}


}
توی تابع onCreate هم از این کلاس به عنوان اداپتر viewPager استفاده میکنم.
svc=new SectionViewChanger(getSupportFragmentManager());
vp=(ViewPager) findViewById(R.id.main_layout);
vp.setAdapter(svc);
layout این fragmentActivity فقط شامل یه view pager هست. تمام المانهایی که میخواید رو هر صفحه باشه باید تو layout همون صفحه باشه مثلا برای هرکدوم از فرگمنت هایی که تو اداپتر ادد کردیم:
public class Third extends Fragment{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.third_layout,contai ner,false);
return view;
}

}

rubiks.kde
یک شنبه 16 تیر 1392, 18:12 عصر
دستتون درد نکنه

من الان این کاررو کردم حالا مشکل اصلی من سر کلاسهای First و ... هست (این سه کلاس)
فرض کنید First قراره یه rss رو نمایش بده و بقیه کلاسها هم کارهای مشابه انجام بدن حالا کد مربوط به اون رو کجا بنویسم؟

shahin bahari
یک شنبه 16 تیر 1392, 20:16 عصر
خوب ببینید من برای مثال کلاس third رو نوشتم. حالا هرکاری که قراره انجام بشه تو اون صفحه باید تو همین کلاس نوشته بشه. توی متد OnCreateView که من نوشتم این کار رو میتونید انجام بدید یا مثلا متد های onCreate,OnAttach,onPause,.... رو override کنید و توی اون ها کارایی که لازمه رو انجام بدید.

darkenerboy
دوشنبه 17 تیر 1392, 16:14 عصر
شاید ارزش نگاه کردن داشته باشه ! (http://stackoverflow.com/questions/15652591/android-load-activity-or-intent-from-fragment-page)

hadis277
یک شنبه 12 مهر 1394, 12:41 عصر
سلام من یه مشکل دارم
من از ویو پیجر استفاده کردم و یه گالری عکس درست کردم که جواب داد
من ویوپیجرم رو از پیجر ادپتر اکستدز کردم .اما حالا میخوام از fragment state pager adapter استفاده کنم
ولی نمیدوم چجوری باید تغیرش بدم کسی میتونه کمکم کنه؟