2015-12-22 5 views
5

最近、2つのタブを持つSlidingTabLayoutを使ってアプリを作った。私は少しそれを変更する必要がありましたしかし、私はこのlinkSlidingTabLayoutのタブをスライドさせない

Sliding Tabs

を言及しました。私はがタブのスライドをロックするボタンを追加しなければならなかった。もう一度クリックするとロックが解除されます。だから私はちょうどスライドしないようにタブを得ることができません。

私はこの質問をチェックアウトしましたDisable swiping between tabs。しかし、彼はそれを行うために他のライブラリを使用しており、もはやサポートされていません。私はデフォルトのものを使用しています。その質問では、CustomViewPagerはandroid.support.v4.view.ViewPagerを拡張します。私のプロジェクトでは、ViewPagerAdapterはFragmentStatePagerAdapterを継承しています。

非常に役に立ちます。ありがとうございました。

+2

あなたは自分のコードを投稿することができます。 –

+0

変更されたコードを投稿してください –

+0

同じです。私はそれを変更していない。私がタブを滑らせないという論理を知ることができれば、私はさらに進めることができます。 – MVK059

答えて

1

ViewPagerを拡張するカスタムViewPagerを作成し、スワイプを無効にして有効にするメソッドを設定することができます。

これは、コードに以下のようなクラスを追加することで可能です。その後、だけではなく、あなたのコード内でCustomViewPagerを使用ViewPagerを使用する:

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

あなたは無効にすることができます/呼び出すことによって、スワイプ可能:setPagingEnabled(boolean enabled).

+0

指定したリンクのViewPagerをチェックアウトしましたか?あなたはそれを完全に置き換えるように私に言っていますか? – MVK059

+0

ViewPagerはアンドロイドサポートv4ライブラリから提供されています。はい、あなたのコードで使用されたことを確認しました。基本的には、このクラスをコードに追加し、ViewPagerを使用するCustomViewPagerに置き換えます。あなたがそれを置き換える必要があるところは実際にはあまりないので、 –

+0

MainActivityでこれを呼び出すには、現在のFragmentManager – MVK059

関連する問題