اسفاده از setCurrentItem برای جابه جای بین فرگمنت های موجود در ویوپیجر
سلام
دوستان بنده از یک فرگمنت دیالوگ استفاده کردم بعد تو این فرگمنت دیالوگ یه ویو پیجر هست که از چند فرگمنت تشکیل شده است
الان بنده میخوام تو این فرگنت های موجود تو ویو پیجر یه دکمه های بزارم که با زدن اونا بین این فرگمنت ها جابه جا بشن کاربر ها میخواستم بدونم از چه روشی استفاده کنم تا اون ویو پیجر موجود تو فرگمنت دیالوگ رو فراخوانی کنم و از setCurrentItem برای جابه جای بین صفحات استفاده کنم
ممنون میشم کسی راهنمایی کنه
مگه نمیتونید بین آیتم های ویوپیجرتون swipe کنید؟
در هر صورت پاسخ سوالتون این میشه :
یک فیلد برای نگهداری پوزیشنِ فعلی یِ ویوپیجر در دیالوگ فرگمنت ایجاد کنید و همچنین یک رفرنس به ویوپیجر رو هم به صورت فیلد تعریف کنید :
private int currentPage;
private ViewPager viewPager;
دیالوگ فرگمنتتون که فرگمنت های دیگه رو در برمیگیره رو به عنوان شنونده یِ رخداد کلیک و همچنین شنونده یِ رخداد تغییر صفحه یِ ویوپیجر معرفی کنید و متدهای لازم رو ایمپلمنت کنید :
public class YourDialogFragment
extends DialogFragment
implements View.OnClickListener,
ViewPager.OnPageChangeListener {
.
.
.
.
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
// با استفاده از این کد پوزیشن صفحه فعلی ویو پیجر رو همیشه در فیلدتون ذخیره دارید
@Override
public void onPageSelected(int position) { currentPage = position;}
@Override
public void onPageScrollStateChanged(int state) {}
// این متد ،رخدادهای کلیک اون باتن هایی که توی فرگمنتای موجود در ویوپیجرتون قرار دادید رو هندل میکنه
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
// این آی دی ها ، آی دی های همون باتن ها هستن..میتونید از آی دی دیگه ای استفاده کنید
case R.id.btnNext:
//این ویوپیجر هم مشخصه دیگه! :همون رفرنس به ویوپیجر هست که به صورت فیلد تعریف کردید
viewPager.setCurrentItem(currentPage + 1);
break;
case R.id.btnPrevious:
viewPager.setCurrentItem(currentPage - 1);
break;
}
}
تنها کاری که مونده اینه که نمونه یِ این کلاس (YourDialogFragment) رو به عنوان شنونده یِ تغییر صفحه ویوپیجر و همچنین به عنوان شنونده یِ کلیک باتن های فرگمنت ، سِت کنید :
viewPager.addOnPageChangeListener(/*yourDialogFragmentInstance*/);
.
.
.
btnNext.setOnclickListener(/*yourDialogFragmentInstance*/);
btnPrevious.setOnclickListener(/*yourDialogFragmentInstance*/);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .