SORU
10 Mart 2012, CUMARTESİ


Nasıl ViewPager içinde parmak ile kaydırarak disk belleği devre dışı ama hala tokatlamak Program aracılığıyla mümkün olabilir?

ViewPager var ve 10 altında düğmeler var. Örneğin butonuna tıklayarak, #4, çağrı cihazı hemen sayfaya gider *3 # #4. Ama parmak ile yatay olarak kaydırarak disk belleği devre dışı bırakmak istiyorum. Böylece, anons yapılırSADECEdüğmeleri tıklayarak. Nasıl parmak ile kaydırma devre dışı bırakmak için mi?

CEVAP
10 Mart 2012, CUMARTESİ


ViewPager alt etmek gerekir. onTouchEvent değiştirmek istemiyorum içinde bir sürü güzel şey, çocuk manzarası dokunur almak için izin gibi. onİnterceptTouchEvent değiştirmek istediğiniz nedir. Eğer ViewPager için kod bakarsanız, yorum görürsünüz.

    /*
     * This method JUST determines whether we want to intercept the motion.
     * If we return true, onMotionEvent will be called and we do the actual
     * scrolling there.
     */

İşte tam çözüm:

İlk, src klasörüne bu sınıf ekleyin:

package com.yourcompany;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class NonSwipeableViewPager extends ViewPager {

    public NonSwipeableViewPager(Context context) {
        super(context);
    }

    public NonSwipeableViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @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;
    }
}

Sonraki, muhtemelen android olarak belirtilen normal ViewPager, yerine bu sınıfı kullanmak için emin olun.destek.v4.görünüm.ViewPager. Düzen, dosya gibi bir şey belirtmek istiyorum

<com.yourcompany.NonSwipeableViewPager
    android:id="@ id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

Bu belirli bir örnek, bir LinearLayout ve layout_weight 1 ve layout_height 0dp neden olan, tüm ekranı, almak içindir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jcortes187

    jcortes187

    24 Mart 2006
  • Jorrit Jongma

    Jorrit Jongm

    17 Ocak 2008
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008