내가하려는 작업 : 프로그램이 실행 중일 때 프로그래밍 방식으로 호출기에서 스 와이프를 활성화 / 비활성화하려고합니다.
예 : 흐름에있을 때 조건을 확인하고 반환true
하면 스 와이프가활성화되고 조건이 반환되면false
스 와이프를 비활성화합니다.
내가 사용하고있는 해결책은 이것입니다
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
} }
그런 다음 XML의 내장 뷰 페이지 대신 이것을 선택하십시오.
<mypackage.CustomViewPager
android:id="@+id/myViewPager"
android:layout_height="match_parent"
android:layout_width="match_parent" />
"false"로 "setPagingEnabled"메소드를 호출하기 만하면 사용자는 스 와이프하여 페이지를 매길 수 없습니다.
위의 방법론의 문제 : 흐름에 속성을 설정할 수 없습니다 . 즉, .... 스 와이프를 활성화하거나 비활성화 할 수 있습니다. 하지만 조건에 따라 할 수 없습니다
질문:
- 다른 방법으로 내 목표를 달성 할 수 있습니까? 그렇다면 그것은 무엇입니까?
- 아니면 이것이 가능하지 않습니까?