2016-07-06 3 views
0

私はfastscrollが有効なGridviewを持っていますが、常にスクロールバーを表示するとは限りません。Android Gridview fastscroll

ただし、画面の右側をクリックすると、スクロールバーが表示されていなくてもファストスクロールします。スクロールバーを表示するときにスクロールするようにするにはどうしたらいいですか?ありがとう。

+0

はなぜ '(真)yourGridView.setFastScrollEnabledない'あなたはそれをするときに非表示にするには? –

+0

私はgridview.FastScrollEnabled = trueを持っていることを意味します。 gridview.FastScrollAlwaysVisible = falseです。スクロールバーは、スクロールを開始したときにのみ表示されますが、スクロールトラックは不可視ですが、常に機密です。 – js67

+0

それからあなたはどんな振る舞いをしたいですか? –

答えて

0

実際にスクロールバーを隠すことで、ファーストスクロールを無効/無効にすることはできません。 解決策が見つかりましたが、ちょっと醜いです...リストをスクロールしてスクロールバーが表示されているときにのみ、ファストクローズを有効にして、スクロールを停止すると無効にします。あなたはスクロールバーとを表示したときに ``(偽)yourGridView.setFastScrollEnabled;

list.setOnScrollListener(new AbsListView.OnScrollListener() { 
     @Override 
     public void onScrollStateChanged(AbsListView absListView, int scrollState) { 
      if (scrollState == SCROLL_STATE_IDLE){ 
       list.setFastScrollEnabled(false); 
      }else { 
       list.setFastScrollEnabled(true); 
      } 
     } 

     @Override 
     public void onScroll(AbsListView absListView, int i, int i1, int i2) {} 
    }); 
+0

それは私にとってはうまくいかない。スクロールを開始すると、高速スクロールバーが表示されますが、そのスクロールバーをクリックすると「スクロール状態がアイドル」になり、高速スクロールバーは表示されなくなります。それゆえ、スクロールを速くすることはありません。 – js67