(۱۳۹۵/۰۶/۲۲, ۰۲:۱۰ ب.ظ)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 context, AttributeSet attrs) {
super(context, attrs);
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" />