ViewPagerを拡張してViewPagerを無効にして、setPagingEnabledメソッドを持たせることもできましたが、今は子を一時的に無効にしたいだけです。特定の状況で特定の子にViewPagerのページングを無効にするにはどうすればよいですか?
私はViewPagerのsetScrollStateメソッドにアクセスしてOnPageScrolledをオーバーライドしてスクロールをキャンセルする必要があると思われますが、どのように把握できません。そのために私の解決策のthats
ViewPagerを拡張してViewPagerを無効にして、setPagingEnabledメソッドを持たせることもできましたが、今は子を一時的に無効にしたいだけです。特定の状況で特定の子にViewPagerのページングを無効にするにはどうすればよいですか?
私はViewPagerのsetScrollStateメソッドにアクセスしてOnPageScrolledをオーバーライドしてスクロールをキャンセルする必要があると思われますが、どのように把握できません。そのために私の解決策のthats
:
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要素を定義する方法を知っていますか?同様の方法で、通常のViewPagerをXMLで定義することができますか? – 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);
}
}
あなたには、いくつかの理由でページを削除したくない場合は、これが唯一の論理的です。
たとえば、2番目のアイテムを無効にしたい場合は、super.setCurrentItem(item+1)
などとすることができます。
子供が何を意味するのかよくわかりません。あなたの子ビューのタイプは何ですか? 「無効にする」とは、多くのことを意味します... ...? –
申し訳ありませんが私は明確でない場合。子どもが私はページ、ページングされたものを意味しました。無効にすると、そのフラグメントへのページングを無効にします。 – Herrbert74
私は誰もこれに答えることができないと信じられません。私はViewPagerでプライベートなので、私はsetScrollStateにアクセスできないことが分かりました。また、一時的に左へのスクロールを無効にしたい場合は、OnPageScrolledで左スワイプをインターセプトし、ViewPagerでonInterceptTouchEventをオーバーライドできます。しかし、それらをどのように接続するのですか? – Herrbert74