انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
غیر فعال کردن swipe در view pager

غیر فعال کردن swipe در view pager

#1
سلام

من میخوام از view pager  برای لود کردن صفحات fragment استفاده کنم.یعنی چندتا صفحه داشته باشم وبا دستور
کد پی‌اچ‌پی:
mViewPager.setCurrentItem(1); 

بتونم به هر صفحه ای که میخوام برم اما swipe نشه کرد داخل برنامه.(با کشیدن دست ازچپ به راست یا برعکس دیگه نشه به صفحات مختلف رفت فقط با دستور بالایی که نوشتم بشه این کار رو انجام داد)
پاسخ

غیر فعال کردن swipe در view pager

#2
(۱۳۹۵/۰۶/۲۲, ۰۲:۱۰ ب.ظ)shahramm نوشته: سلام

من میخوام از view pager  برای لود کردن صفحات fragment استفاده کنم.یعنی چندتا صفحه داشته باشم وبا دستور
کد پی‌اچ‌پی:
mViewPager.setCurrentItem(1); 

بتونم به هر صفحه ای که میخوام برم اما swipe نشه کرد داخل برنامه.(با کشیدن دست ازچپ به راست یا برعکس دیگه نشه به صفحات مختلف رفت فقط با دستور بالایی که نوشتم بشه این کار رو انجام داد)


من این کد ها رو پیدا کردم اما طرز استفادشو بلد نیستم ممکنه کمک کنید ممنون.

کد پی‌اچ‌پی:
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.animation.DecelerateInterpolator;
import android.widget.Scroller;
import java.lang.reflect.Field;
 
public class 
NonSwipeableViewPager extends ViewPager {
 
 
   public NonSwipeableViewPager(Context context) {
 
       super(context);
 
       setMyScroller();
 
   }
 
 
   public NonSwipeableViewPager(Context contextAttributeSet attrs) {
 
       super(contextattrs);
 
       setMyScroller();
 
   }
 
 
   @Override
    public boolean onInterceptTouchEvent
(MotionEvent event) {
 
       // Never allow swiping to switch between pages
 
       return false;
 
   }
 
 
   @Override
    public boolean onTouchEvent
(MotionEvent event) {
 
       // Never allow swiping to switch between pages
 
       return false;
 
   }
 
 
   //down one is added for smooth scrolling
 
 
   private void setMyScroller() {
 
       try {
 
           Class<?> viewpager = ViewPager.class;
            Field scroller = viewpager.getDeclaredField("mScroller");
            scroller.setAccessible(true);
            scroller.set(this, new MyScroller(getContext()));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    public class MyScroller extends Scroller {
        public MyScroller(Context context) {
            super(context, new DecelerateInterpolator());
        }
 
        @Override
        public void startScroll(int startX, int startY, int dx, int dy, int duration) {
            super.startScroll(startX, startY, dx, dy, 350 /*1 secs*/);
        }
    }

کد پی‌اچ‌پی:
<com.yourcompany.NonSwipeableViewPager
    android
:id="@+id/view_pager"
 
   android:layout_width="match_parent"
 
   android:layout_height="0dp"
 
   android:layout_weight="1" /> 
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان