آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

اسفاده از setCurrentItem برای جابه جای بین فرگمنت های موجود در ویوپیجر

125429  6 سال پیش  6 سال پیش
0 0

سلام

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

الان بنده میخوام تو این فرگنت های موجود تو ویو پیجر یه دکمه های بزارم که با زدن اونا بین این فرگمنت ها جابه جا بشن کاربر ها میخواستم بدونم از چه روشی استفاده کنم تا اون ویو پیجر موجود تو فرگمنت دیالوگ رو فراخوانی کنم و از setCurrentItem  برای جابه جای بین صفحات استفاده کنم

ممنون میشم کسی راهنمایی کنه

 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
مسعود فرمانی  6 سال پیش
+1 0

 پاسخ صحیح

مگه نمیتونید بین آیتم های ویوپیجرتون 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*/);
0 0
ببخشید همش رو متوجه شدم جز این نمونه ی کلاس رو به عنوان شنونده ست کنیم یعنی دقیقا چیکار کنیم میشه بیشتر توضیح بدید (6 سال پیش)
0 0
ببخشید مشکلم حل شد :) (6 سال پیش)

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