Android 에서 Viewpager 가 미 끄 러 지 는 것 을 금지 합 니 다.
현재 많은 app,첫 페이지 에서 미끄럼 전환 을 허용 하지 않 습 니 다(페이지 로 딩 때 문 입 니 다).하지만 view page 로 frgament 를 관리 합 니 다.편리 하 니까 요.
예전 에 인터넷 에서 찾 았 던 예:
public class NoScrollViewPager extends ViewPager {
public NoScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NoScrollViewPager(Context context) {
super(context);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// , ,
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return true;
}이 사용자 정의 가 계승 하 는 Viewpager 가 낮은 버 전이 라면 문제 없습니다.하지만 컴 파일 할 때 높 은 버 전의 api 를 사용 하면 5.0 이후 에 이 사용자 정의 가 실 효 됩 니 다.
너 는 미세한 미끄럼 이 있 을 것 이라는 것 을 알 게 될 것 이다.그래도 미 끄 러 질 수 있 을 것 이다.
오래된 것 인지 새 것 인지 판단 하려 면 setOnPageChange Listener 를 보면 알 수 있 습 니 다.
최신 Viewpager 에서 이 방법 은 이미 폐기 되 었 고
addOnPageChangeListener()로 바 뀌 었 습 니 다.이전에 viewpager 를 게 으 른 로 딩 으로 바 꾸 었 기 때문에 오래된 버 전의 Viewpager 를 사용 해 왔 습 니 다.최근 에 야 발견 되 었 습 니 다.
개선 후
public class NoScrollViewPager extends ViewPager {
private boolean isScroll;
public NoScrollViewPager(Context context,AttributeSetattrs{
super(context, attrs);
}
public NoScrollViewPager(Context context) {
super(context);
}
/**
* 1.dispatchTouchEvent
*, ,
*/
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return super.dispatchTouchEvent(ev); // return true;
}
/**
*
* : onTouchEvent
* :
*/
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
// return false;// , ,
// return true;// ,
//return super.onInterceptTouchEvent(ev);// ,
if (isScroll){
return super.onInterceptTouchEvent(ev);
}else{
return false;
}
}
/**
*
* :
* :
*/
@Override
public boolean onTouchEvent(MotionEvent ev) {
//return false;// , ,
//return true;// , ,
//super.onTouchEvent(ev); // ,
// onInterceptTouchEvent ,
// viewpage viewgroup, .
if (isScroll){
return super.onTouchEvent(ev);
}else {
return true;// , ,
}
}
public void setScroll(boolean scroll) {
isScroll = scroll;
}
}총결산이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.