16

Có bất kỳ mẫu nào về cách xử lý chuyển tiếp giao diện người dùng trong hoạt động Android so với phân đoạn không? Tôi hiện đang xem xét một giao diện người dùng có tối đa 3 cột trong Cảnh quan. Tôi muốn giao diện người dùng bắt đầu với 1 cột trên màn hình và sau đó chọn thứ gì đó di chuyển trong cột thứ hai và sau đó nhấp vào thứ gì đó trong phai thứ hai ở thứ 3 trên máy tính bảng và điện thoại và mờ dần cột trên điện thoại. Tôi tự hỏi khi nào tôi nên làm điều này như là một chuyển đổi Hoạt động và khi tôi chỉ nên sử dụng Fragments với Views xuất hiện. Theo như tôi đã đọc các mảnh có thể được chuyển sang các hoạt động khác, do đó lựa chọn của tôi là triển khai Hoạt động với các bố cục cột tĩnh, sau đó chuyển đổi các đoạn với chúng hoặc có một Hoạt động với tất cả 3 cột và có Hoạt động quản lý Xuất hiện của Mảnh vỡ. Cả hai cách tiếp cận có thể làm việc nhưng tôi đã quan tâm đến ưu và khuyết điểm từ nhiều góc độ cho cả hai giải pháp.Các mẫu khi sử dụng Chuyển đổi hoạt động và Phân đoạn động

Có hai câu hỏi tương tự với những gì tôi đang hỏi nhưng không khá trả lời tôi

Trả lời

12

Đoạn mã có vẻ giống mã hơn ở phía trước (vì bạn đang đặt chế độ xem trong một đoạn và một đoạn trong Hoạt động, thay vì chỉ xem trong Hoạt động), nhưng chúng tuyệt vời giúp bạn tiết kiệm đau đầu chỉ trong loại tình huống này - Chắc chắn đi với mảnh vỡ. Họ thậm chí xử lý các chuyển tiếp cho bạn.

Chúng tôi có một số mã mẫu được gọi là "Thư viện tổ ong", bạn có thể xem here, có bố cục hai cột cộng với hành vi và khả năng hiển thị/ẩn cột ngoài cùng bên trái. Điều này sẽ cung cấp cho bạn một khởi đầu tốt trong việc tìm ra cách để bố trí cho nhiều đoạn và hiển thị/ẩn chúng.

FYI, một sự cân bằng quan trọng khi sử dụng nhiều đoạn trong Hoạt động thay vì nhiều Hoạt động, là các phân đoạn không phản hồi trực tiếp ý định - Ví dụ: nếu bạn có ứng dụng ghi chú trong đó "Xem ghi chú" trang là một Hoạt động và bạn đã thay đổi nó để có một "xem ghi chú" Fragment bên trong Hoạt động chính, sau đó bạn phải thiết lập để Hoạt động chính nhận được ID ghi chú và hành động ghi chú (tạo, xem , chỉnh sửa, bất cứ điều gì) trong Intent, thay vì chỉ có hoạt động "xem ghi chú" nhận được ID ghi chú trong Intent. Các hoạt động chính sau đó sẽ cần phải thiết lập các mảnh trên trang cho phù hợp. Không phải là một vấn đề lớn, nhưng nếu khả năng truy cập bên ngoài vào các phần khác nhau của ứng dụng của bạn thông qua Intent là rất quan trọng, thì có thể dễ dàng chia ứng dụng của bạn ra thành một vài Hoạt động, cũng như sử dụng phân đoạn để thể hiện các thành phần riêng lẻ.

+0

Cảm ơn Alexander là một con trỏ tốt, tôi thực sự đã quên về ứng dụng Mẫu đó. Đối với tôi, nó ít hơn về Activites vs Fragments và nhiều hơn nữa về thời điểm sử dụng một Activity containg Static Fragments và khi nào để nạp các Fragments. Tôi nghĩ rằng một phác thảo mô hình tốt là cơ chế Intent. Vì vậy, nếu bạn muốn màn hình được địa chỉ thông qua một Intent thì hãy có nó trong Activity của chính nó. Bạn có thể nghĩ ra các mẫu khác không? Ứng dụng Ice Cream Sandwich Core có các mẫu tốt trong chúng mà người ta có thể sử dụng để nghiên cứu cách sử dụng Fragments tốt nhất không? – AGrunewald

+1

Tại Phòng thí nghiệm Dev Honeycomb Android gần đây, chúng tôi đã có một nhà phát triển nói rằng họ đi theo "những gì gmail sẽ làm". Mặc dù những gì hoạt động trong ứng dụng của bạn luôn quan trọng nhất, chúng làm tăng điểm tốt trong đó ứng dụng gmail (cả máy tính bảng và điện thoại) là một tham chiếu rất chắc chắn về sử dụng tốt các đoạn và cập nhật cả mục Hành động và đoạn hiển thị dựa trên ngữ cảnh (ví dụ: các mục trên thanh tác vụ thay đổi dựa trên việc bạn đang đọc email, viết một hay duyệt danh sách email.) Trong Honeycomb, Youtube & Contacts, cũng tuyệt vời. Theo ICS, tôi không thể nói về chi tiết nào được nêu ra :) –

+0

Cảm ơn bạn đã cập nhật tuyệt vời Alexander. Tôi đang mong chờ đến ICS Open Source Drop để xem mã. Tôi biết nhiều ứng dụng của Google không được đưa vào nhưng tôi tin rằng vẫn còn đủ ứng dụng cốt lõi trong cây mã nguồn mở để tìm hiểu rất nhiều. – AGrunewald

1

Dựa trên trang The Android 3.0 Fragments API, một hoạt động là đứng một mình trong khi một mảnh có thể được mặc dù như là một hoạt động nhỏ, mà phải được lưu trữ trong một hoạt động thực tế. Nó tiếp tục để nói rằng sự ra đời của API Fragment đã cho các nhà phát triển Android cơ hội để giải quyết nhiều điểm mà các nhà phát triển gặp phải với Hoạt động, vì vậy trong Android 3.0, tiện ích Fragment mở rộng vượt xa chỉ cần điều chỉnh cho các màn hình khác nhau :

Tôi nghĩ rằng việc sử dụng một hoạt động cho một ứng dụng không nhất thiết là một quyết định sai lầm, chỉ là vấn đề về phong cách. Đó là một quyết định mà bạn nên thực hiện dựa trên những gì bạn đang cố gắng hoàn thành.

Tuy nhiên, việc giới thiệu Fragments được xem là giải quyết các vấn đề trong thế giới thực. Chỉ dựa trên điều đó, tôi khuyên bạn nên viết một số mã "Proof of Concept" và đánh giá kết quả. Tại thời điểm này, đây có thể là thử nghiệm thế giới thực duy nhất mà sẽ quan trọng

+0

Cảm ơn bạn đã bình luận Noah, tôi đồng ý với những gì bạn đang nói, tiếc là nó không trả lời câu hỏi của tôi vì tôi đang tìm kiếm các mẫu. Nhưng có vẻ như chúng ta vẫn đang phá vỡ mảnh đất mới với Fragments. – AGrunewald

1

hoạt động sử dụng cho toàn màn hình

Sử dụng mảnh vỡ cho phần của hoặc không có màn hình (nhưng không phải là một dịch vụ)

Trong ứng dụng chính của tôi , có các tab trên màn hình trong chế độ xem cuộn ngang tôi muốn tồn tại trên nhiều phần của ứng dụng. Các mục bao gồm Tin tức, Ảnh, Video, Lịch biểu vv Tất cả các tác vụ có thể tập trung vào một người dùng.

Ứng dụng chính chứa tất cả là một ứng dụng và các tab chỉ là chế độ xem gọi Trình quản lý phân đoạn.

Tuy nhiên, tôi sử dụng Hoạt động cho các hoạt động của người dùng phức tạp sâu hơn trong ứng dụng. Ví dụ. nếu ai đó phát video, hãy xem trang chi tiết mặt hàng và phần ảnh/thư viện ảnh/trình chiếu, vì chúng là tất cả các thành phần toàn màn hình.

Không cần hiển thị/ẩn các đoạn khi chuyển sang chế độ toàn màn hình vì ngăn xếp hoạt động xử lý mọi thứ bạn muốn thực hiện nhanh chóng và dễ dàng, đồng thời giữ mã của bạn tối thiểu và sạch sẽ.

Vì vậy, tôi có Hoạt động -> phân đoạn nhà ở -> khởi chạy toàn màn hình Hoạt động cho các lệnh đặc biệt.

+0

Cảm ơn bạn đã trả lời HaMMeReD Tôi biết điều này đã nhiều :-) Câu hỏi được hướng dẫn nhiều hơn khi chuyển đổi giữa các hoạt động để thay đổi màn hình và khi nào chỉ cần thay đổi các đoạn động. – AGrunewald

+0

Sử dụng Hoạt động mỗi lần là thành phần toàn màn hình. Bạn có thể tái sử dụng các mảnh trong nhiều hoạt động. – HaMMeReD

+0

Thực ra, điều làm cho thành phần toàn màn hình trên điện thoại là thành phần màn hình trên máy tính bảng, do đó, việc đặt các bit "toàn màn hình" thành các mảnh thay vì hoạt động vẫn có ý nghĩa. –

Các vấn đề liên quan