Giới thiệu:
Mẫu "Hướng dẫn phân đoạn" cơ bản có dạng như sau:
- Trên máy tính bảng, có một danh sách bên trái, chi tiết bên phải.
- Cả hai
Fragments
và đều cư trú trong cùng mộtActivity
. - Trên điện thoại, có một danh sách
Fragment
trong mộtActivity
. - Ra mắt một cái mới
Activity
với các chi tiếtFragment
.
(ví dụ: API Fragment Android 3.0 của Dianne Hackborn và Hướng dẫn API Fragment )
Trên cả hai thiết bị, chức năng là trong Fragments
. (đơn giản)
Trên Tablet , toàn bộ ứng dụng là 1Activity
, trên điện thoại , có rất nhiềuActivities
.
Câu hỏi:
- Có một lý do để chia ứng dụng điện thoại thành nhiều
Activities
?
Một vấn đề với phương pháp này là bạn sao chép rất nhiều logic trong Máy tính bảng chính Activity
và trong Điện thoại riêng Activities
.
- Sẽ không dễ dàng hơn để giữ lại mô hình 1 Hoạt động trong cả hai trường hợp, sử dụng cùng một logic chuyển đổi
Fragments
vào và ra (chỉ sử dụng một bố cục khác)?
Bằng cách này, phần lớn logic nằm trong Fragments
chính chúng và chỉ có một Activity
bản sao - ít mã trùng lặp.
Ngoài ra, những gì tôi đã đọc về ActionBarSherlock
nó là nó dường như hoạt động tốt nhất Fragments
thay vì Activities
(nhưng tôi chưa làm việc với nó).
Là các hướng dẫn quá đơn giản, hoặc tôi đã bỏ lỡ một cái gì đó lớn trong phương pháp này?
Chúng tôi đã thử cả hai cách tiếp cận thành công trong văn phòng - nhưng tôi sắp bắt đầu một dự án lớn hơn và muốn làm mọi thứ dễ dàng cho bản thân nhất có thể.
Một số liên kết đến các câu hỏi liên quan:
- Tiến thoái lưỡng nan: khi nào nên sử dụng Fragment vs Activity:
- Các mẫu khi sử dụng Activity Transition vs Dynamic Fragment
- Android - Tôi cần một số giải thích rõ ràng về các phân đoạn so với các hoạt động và lượt xem
- Hoạt động hay mảnh vỡ trong Android?
- Thiết kế tương tác nhiều mảnh và hoạt động
- Vậy đâu là những lợi thế chính xác của Fragment trong Android 3.0?
Cập nhật
Bắt đầu tiền thưởng cho câu hỏi - vẫn chưa thuyết phục về lý do tại sao tôi cần sao chép logic ứng dụng của mình trong hoạt động máy tính bảng và trong từng hoạt động của điện thoại.
Cũng tìm thấy một bài viết thú vị của những người ở Square, rất đáng đọc:
onItemSelected()
phương thức trong Hoạt động. Trong ứng dụng "thực" của mình, tôi có nhiều danh sách & danh sách phụ. Mẫu này gợi ý rằng Hoạt động Tab của tôi phải có onItemSelected()
phương pháp để xử lý từng danh sách. Ngoài ra, mỗi Hoạt động trên Điện thoại phải có cùng một logic được nhân đôi bên trong mỗi hoạt động đó. IMHO sẽ tốt hơn nhiều khi đưa logic được chọn vào từng phân đoạn - không có sự trùng lặp và tôi thích cách cấu trúc mã đó. Tôi hy vọng điều này có ích