2015-06-23 15 views
11

Sto creando un'applicazione contiene un visualizzatore di pagine con schede swipe-voglio fare alcune operazioni all'interno di view pager e al momento delle operazioni voglio disabilitare la visualizzazione swipe dopo aver fatto le operazioni abilitate la vista a scorrimento qualcuno può dirmi come fare questo e la mia attività si estendeva all'attività del frammento grazie in anticipoCome disabilitare il swipe in un cercapersone in Android

+0

Hai chiesto la stessa domanda solo 2 ore fa! – Hans1984

+0

Sì amico qui sto usando l'attività di frammento che è il mio problema principale @ Hans1984 –

+0

Allora perché lo chiedi di nuovo ??? Questo non è lo scopo di questo sito. – Hans1984

risposta

38

Creare una nuova classe che ha denominato CustomViewPager. La classe eredita da ViewPager e include un nuovo metodo chiamato setPagingEnabled. Per abilitare/disabilitare lo scorrimento, basta sovrascrivere due metodi: onTouchEvent e onInterceptTouchEvent. Entrambi restituiscono false se l'impaginazione è disabilitata.

Ecco il codice completo:

package com.yourpackage; 

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

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

Poi nel file layout.xml sostituire qualsiasi <com.android.support.V4.ViewPager> tag con <com.yourpackage.CustomViewPager> tag come qui di seguito.

<com.yourpackage.CustomViewPager 
android:id="@+id/photosViewPager" 
android:layout_height="match_parent" 
android:layout_width="match_parent" /> 

Ora usare CustomViewPager invece di ViewPager nella vostra attività. E questo è tutto. Ora, in qualsiasi momento per disabilitare lo scorrimento, è sufficiente chiamare il metodo setPagingEnabled con false.

CustomViewPager mViewPager = (CustomViewPager) findViewById(R.id.pager); 
mViewPager.setPagingEnabled(false); 
+0

Qui sto usando l'attività estende l'attività Fragment ma qui stavo usando il pager della vista. Posso farlo in Fragment activity @Priyank –

+0

sì, puoi farlo @lakshman. –

+0

Non ho ricevuto metodi sovrascritti per l'attività dei frammenti, puoi aiutarmi per favore @Priyank –

-5

Prova sotto i metodi

Per disabilitare strisciata chiamata

viewPager.beginFakeDrag(); 

Per abilitare chiamata strisciata

viewPager.endFakeDrag(); 
+0

Devo passare qualsiasi valore booleano al suo interno @Chandrakanth –

+0

Vedere la mia risposta aggiornata – Chandrakanth

+0

Funziona ?? – Chandrakanth

Problemi correlati