2011-01-31 15 views
33

私はゲームボード用にGridViewを使用しています。最近、一部のユーザーがボードを縦にスクロールする際に問題が発生しています(Samsung Galaxy/Vibrant携帯電話では2.2)。このバグは自分のNexus Oneでは発生しません。AndroidでGridViewのスクロールを無効にするにはどうすればよいですか?

1人のユーザーが問題のscreenshotsを作成しました。

GridViewをロックするにはどうすればよいですか?スクロールを無効にする方法はありますか?

答えて

87

gridviewがスクロールしませ行い、その後onTouch方法であなたは に、このようなコードを使用することができます 、GridViewためsetOnTouchListenerを追加したり、上書きしてください:

gridview.setOnTouchListener(new OnTouchListener(){ 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return event.getAction() == MotionEvent.ACTION_MOVE; 
    } 

}); 
+8

これは正しい解決策です。 –

+1

+1 @Thanksそれは私のために働いた... –

+1

これは私が必要なものです。ありがとう。 – jayellos

10

他の副作用があるかもしれませんが、setEnabled(false)を試すことができます。 GridViewは実際にあなたがそれを使用している方法で使用するためのものではありません。独自のカスタムビューまたはレイアウトを作成する必要があります。また、TableLayoutを使用することもできます。

+0

うん、私はそれがカスタムビューでなければなりません実現しています。現在のGridViewを置き換えるためにもう少し複雑になるでしょう(アーリーデザインエラー)。簡単な修正があることを望んでいた:) setEnabled()メソッドは、すべての機能を無効にします。ありがとうRomain – pjama

+1

Romain GuyはreeeeallyあなたがスクロールせずにGridViewを使用することを望んでいません。私はこのhttp://stackoverflow.com/a/4536955/671543トリックを使用します。 – njzk2

+0

将来の読者のために、私はTableLayoutで1つの例を見つけました:http://stackoverflow.com/a/8639461/3844201 –

関連する問題