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
risposta
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);
Qui sto usando l'attività estende l'attività Fragment ma qui stavo usando il pager della vista. Posso farlo in Fragment activity @Priyank –
sì, puoi farlo @lakshman. –
Non ho ricevuto metodi sovrascritti per l'attività dei frammenti, puoi aiutarmi per favore @Priyank –
Prova sotto i metodi
Per disabilitare strisciata chiamata
viewPager.beginFakeDrag();
Per abilitare chiamata strisciata
viewPager.endFakeDrag();
Devo passare qualsiasi valore booleano al suo interno @Chandrakanth –
Vedere la mia risposta aggiornata – Chandrakanth
Funziona ?? – Chandrakanth
Hai chiesto la stessa domanda solo 2 ore fa! – Hans1984
Sì amico qui sto usando l'attività di frammento che è il mio problema principale @ Hans1984 –
Allora perché lo chiedi di nuovo ??? Questo non è lo scopo di questo sito. – Hans1984