首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android GridView 滑動選中效果實現:pointToPosition

     編輯:程式設計疑難解答

需求

GridView 顯示多張圖片,手指滑動劃過自動選中項目。

核心方法

gridView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int x = (int) event.getX();
        int y = (int) event.getY();
        int position = gridView.pointToPosition(x, y);
        if (position != ListView.INVALID_POSITION) {
            gridView.setItemChecked(position, true); // 或自定義選中狀態
            // 更新 UI 顯示選中效果
        }
        return false; // 繼續分發觸摸事件
    }
});

關鍵點

  • `pointToPosition(x, y)` 將屏幕座標轉換為適配器位置,返回 `INVALID_POSITION` 表示無項目。
  • 結合 `setChoiceMode(ListView.CHOICE_MODE_SINGLE/MULTIPLE)` 使用內建選中狀態,或自維护 `SparseBooleanArray` 記錄選中項並在 `getView` 中渲染高亮。
  • 返回 `false` 讓 GridView 繼續處理滾動,`true` 會攔截滾動。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved