Thứ Sáu , Tháng Sáu 22 2018
Lập trình android / VIDEO BÀI GIẢNG / Lập trình Android / [Android cơ bản] 17. Tìm hiểu về Drag và Drop

[Android cơ bản] 17. Tìm hiểu về Drag và Drop

Framework Drag/Drop trong lập trình Android cho phép người dùng di chuyển dữ liệu từ một View này tới một view khác trong cùng một layout bằng một cử chỉ kéo và thả. Như việc API 11 kéo và thả của view trong các view khác hoặc các nhóm views được hỗ trợ. Framework này bao gồm 3 thành phần quan trọng để hỗ trợ chức năng kéo & thả:

  • Lớp event Drag
  • Drag listener
  • Các phương thức và lớp Helper
Ví dụ về Drag/Drop
Ví dụ về Drag/Drop

Quá trình Drag/Drop

Việc drag & drop cơ bản được tiến hành qua 4 bước đơn giản sau:

1. Bắt đầu – Event này xảy ra khi bạn bắt đầu kéo một item trong một layout, ứng dụng cảu bạn gọi phương thức startDrag() để nhắc hệ thống bắt đầu một thao tác kéo. Các đối số trong phương thức startDrag() cung cấp dữ liệu để được kéo, metadata cho dữ liêu này, và một callback cho việc phác họa drag shadow. 

  • Đầu tiên hệ thống sẽ phản hồi bằng cách gọi lại ứng dụng của bạn để lấy một drag shadow. Sau đó drag shadow sẽ hiển thị trên thiết bị.
  • Tiếp theo, hệ thống sẽ gửi một event drag với một action kiểu ACTION_DRAG_STARTED tới drag event listener đã đăng kí cho tất cả các đối tượng view trong cùng một layout
  • Để tiếp tục nhận drag event, bao gồm cả một drop event khả dụng, một drag event listener sẽ phải trả về true. Nếu như drag event listener trả về falsse thì nó sẽ không nhận được drag event cho quá trình hiện tại cho tới khi hệ thống gửi một drag event với kiểu action ACTION_DRAG_ENDED.

2. Tiếp tục – Người dùng tiếp tục với drag. Hệ thống gửi action ACTION_DRAG_ENTERED theo action ACTION_DRAG_LOCATION tới drag event listener đã đăng kí cho view nơi mà các điểm kéo có thể vào. Listener có thể chọn để thay thế giao diện đối tượng View của nó trong việc phản hồi lại event hoặc có thể phản ứng bằng cách highlight View của nó.

  • Drag event listener nhận một action ACTION_DRAG_EXITED sau khi người dùng đã di chuyển drag shadow ra phía ngoài bounding box của View.

3. Thả – Người dùng sẽ thả item đang được kéo trong một bounding box của một View. Hệ thống gửi Listener của đối tượng View một drag event với kiểu action ACTION_DROP

4. Kết thúc – Sau kiểu action ACTION_DROP, hệ thống sẽ đưa ra một drag event với kiểu action ACTION_DRAG_ENDED để cho thấy rằng quá trình drag đã kết thúc.

 

[Total: 0    Average: 0/5]

Bạn nên xem

[Android cơ bản] 19b. Lấy vị trí hiện tại

Để lấy vị trí hiện tại, hãy tạo một client location là đối tượng LocationClient, kết …

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Facebook chat Vietpro