ViewPager를 확장하여 ViewPager를 사용 중지하고 setPagingEnabled 메소드를 사용할 수 있지만 이제는 자식을 일시적으로 사용 중지하려고합니다.특정 상황에서 특정 하위 페이지에 대한 ViewPager의 페이징을 어떻게 해제합니까?
나는 ViewPager의 setScrollState 메소드에 액세스하여 OnPageScrolled를 재정의하고 스크롤을 취소해야한다고 생각하지만 어떻게 될지 알 수 없습니다.
ViewPager를 확장하여 ViewPager를 사용 중지하고 setPagingEnabled 메소드를 사용할 수 있지만 이제는 자식을 일시적으로 사용 중지하려고합니다.특정 상황에서 특정 하위 페이지에 대한 ViewPager의 페이징을 어떻게 해제합니까?
나는 ViewPager의 setScrollState 메소드에 액세스하여 OnPageScrolled를 재정의하고 스크롤을 취소해야한다고 생각하지만 어떻게 될지 알 수 없습니다.
그것을 위해 내 솔루션을 먹으 렴 :
public class NonSwipeableViewPager extends ViewPager {
private boolean swipe = true;
public boolean isSwipe() {
return swipe;
}
public void setSwipe(boolean swipe) {
this.swipe = swipe;
}
public NonSwipeableViewPager(Context context) {
super(context);
}
public NonSwipeableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (swipe) {
return super.onInterceptTouchEvent(arg0);
}
// Never allow swiping to switch between pages
return false;
}
}
아니요, 죄송합니다, 제가 언급 한 setPagingEnabled 메소드이지만 다른 이름을 사용하고 있습니다. 페이지 페이징을 비활성화하는 방법이 필요했습니다. 예를 들어 페이지 # 2에 대한 페이징을 비활성화하고 페이지 # 0 및 # 1에 대한 페이징을 비활성화합니다. – Herrbert74
이것은 정확히 제가 시도한 것입니다. 당신은 xml에서 이와 같이 사용자 정의 UI 요소를 정의하는 방법을 알고 있습니까? xml에서 일반적인 ViewPager를 정의하는 것과 비슷합니까? – bhekman
신경 쓰지 마라, 나는 Google, 롤 수 있습니다! 그것을 발견 : http://stackoverflow.com/questions/2695646/declaring-a-custom-android-ui-element-using-xml 게시물 주셔서 감사! – bhekman
이 나는 ViewPager
의 첫 페이지를 비활성화 한 일이다. 대신 상태 변수를 사용하여, 나는 ViewPager.getAdapter()
을 사용하고 내가 슬쩍 허용해야하는 경우가 확인 :
public class CardViewPager extends ViewPager {
public CardViewPager(Context context) {
super(context);
}
public CardViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setCurrentItem(int item) {
if ((((CardFragmentAdapter) this.getAdapter()).isFirstItemDisabled())
&& (item == 0)) {
Log.d("ViewPager", "You don't wanna see this.");
return;
}
super.setCurrentItem(item);
}
}
어떤 이유로 페이지를 제거하지 않으려면이 단지 논리적 물론입니다.
예를 들어 두 번째 항목을 사용하지 않으려면 super.setCurrentItem(item+1)
또는 비슷한 것을 사용할 수 있습니다.
자녀가 무슨 뜻인지 모르겠습니까? 자녀가 볼 수있는 유형은 무엇입니까? "무력화"는 많은 것을 의미 할 수 있습니다 ...? –
내가 명확하지 않으면 죄송합니다. 자식에 의해 나는 페이지를 의미했는데, 페이징되는 부분. 비활성화는 해당 조각에 대한 페이징을 비활성화하는 것입니다. – Herrbert74
아무도 이것에 대답 할 수 없다고 나는 믿을 수 없다. ViewPager에서 비공개이기 때문에 setScrollState에 액세스 할 수 없다는 것을 알 수있었습니다. 또한 일시적으로 왼쪽으로 스크롤을 사용하지 않으려면 OnPageScrolled에서 왼쪽 스 와이프를 가로 채고 ViewPager에서 onInterceptTouchEvent를 재정의 할 수 있습니다. 그러나 둘을 연결하는 방법은 무엇입니까? – Herrbert74