2015-12-22 13 views
5

Ich habe vor kurzem eine App mit SlidingTabLayout mit zwei Tabs gemacht. I bezeichnet diese linkMachen Sie Tabs in SlidingTabLayout nicht Folie

Sliding Tabs

Jedoch habe ich es etwas hatte zu ändern. Ich musste eine Taste hinzufügen, die das Verschieben der Tabs sperrt. Und entsperren Sie es, wenn es erneut angeklickt wird. Also kann ich die Tabs einfach nicht rutschen lassen.

Ich habe diese Frage Disable swiping between tabs ausgecheckt. Aber er verwendet eine andere Bibliothek, um es zu tun, und es wird nicht mehr unterstützt. Ich verwende den Standard. Und in dieser Frage erweitert der CustomViewPager android.support.v4.view.ViewPager. In meinem Projekt erweitert ViewPagerAdapter FragmentStatePagerAdapter.

Jede Hilfe wäre sehr nützlich. Vielen Dank.

+2

Können Sie sich Ihren Code schreiben. –

+0

Veröffentlichen Sie Ihren geänderten Code –

+0

Es ist das gleiche. Ich habe es nicht geändert. Wenn ich die Logik kennen gelernt habe, die Tabs nicht zu verschieben, kann ich weiter vorgehen. Vielen Dank – MVK059

Antwort

1

Sie können einfach einen benutzerdefinierten ViewPager erstellen, der den ViewPager erweitert und eine Methode zum Deaktivieren und Aktivieren des Wischens festlegt.

Sie können das tun, indem Sie Ihrem Code eine Klasse wie die folgende hinzufügen. Dann anstelle der Verwendung ViewPager nur CustomViewPager in Ihrem Code verwenden:

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

Sie deaktivieren/enable swiping durch den Aufruf: setPagingEnabled(boolean enabled).

+0

Haben Sie den ViewPager des angegebenen Links ausgecheckt? Willst du mir sagen, dass ich das vollständig ersetzen soll? – MVK059

+0

Der ViewPager ist von der Android-Support-Bibliothek v4, und ja, ich habe überprüft und gesehen, dass es in Ihrem Code verwendet wurde. Also im Grunde sage ich, fügen Sie diese Klasse zu Ihrem Code und ersetzen Sie ViewPager mit CustomViewPager, wo es verwendet wird. Es gibt wirklich nicht so viele Referenzen, wo Sie es ersetzen müssen –

+0

Und wie ich das in MainActivity aufrufen, wie der aktuelle FragmentManager verwendet – MVK059

Verwandte Themen