web-dev-qa-db-ja.com

AndroidでGridViewスクロールを無効にする方法は?

ゲームボードにGridViewを使用しています。最近、一部のユーザーがボードの垂直スクロールに問題を抱えています(Samsung Galaxy/Vibrantフォンで2.2を実行)-このバグはNexus Oneでは発生しません。

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

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

35
pjama

setOnTouchListenerGridViewを追加またはオーバーライドしてから、onTouchメソッドでこのようなコードを使用してgridViewをスクロールできないようにします。

Java

gridView.setOnTouchListener(new OnTouchListener() {

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

});

コトリン

gridView.setOnTouchListener { v, event ->
    event.action == MotionEvent.ACTION_MOVE
}
92
Fadhlan

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

10
Romain Guy