9

Lấy ví dụ ứng dụng tôi hiện đang làm việc: - nó có một navigationDrawer với nhiều mục; có hai mặt hàng mà tôi quan tâm bây giờ, tôi sẽ gọi họ là X và Y.NavigationDrawer với Hoạt động so với NavigationDrawer với Fragments

  • cả X và Y, khi nhấp vào, hiển thị một đoạn chứa danh sách các x-yếu tố hay y-yếu tố

  • yếu tố chọn và x hoặc y hiển thị một đoạn mới mà tôi hiển thị thông tin về mục được chọn; các mảnh vỡ quan điểm khác nhau đối với x và các yếu tố y

  • trong đoạn xem tôi có thể chọn để chỉnh sửa các yếu tố cụ thể mà sẽ trả về một đoạn chỉnh sửa

Cách tiếp cận mảnh đang làm việc, nhưng nó đã cho tôi một thời gian để quản lý điều hướng giữa các đoạn. Ngoài ra, tôi có lẽ sẽ phải thêm một số mặt hàng mới trong ngăn kéo tương tự với X và Y. Hoạt động chính của tôi, trong đó tôi có ngăn kéo và tôi thực hiện chuyển đổi đoạn, khá dày đặc, điều này đưa tôi đến câu hỏi của mình: Tôi chuyển từ mảnh vỡ sang hoạt động? Tôi đã suy nghĩ về việc bắt đầu một hoạt động mới khi một mục ngăn kéo được chọn và xử lý danh sách/xem/chỉnh sửa các đoạn liên quan đến mục đã chọn trong hoạt động đó, thay vì xử lý tất cả các mảnh cho tất cả các mục trong một hoạt động.

Đó có phải là một ý tưởng hay không? Có thiết kế tồi không?

+0

tại sao bạn cố gắng tạo ra một chiếc xe đạp - có một cách được mô tả cách thực hiện điều đó và rất nhiều ví dụ. Ngày nay bạn có NavigationView cung cấp cho bạn thiết kế material design ngoài hộp. Hoạt động chính của bạn nên quản lý điều hướng và trạng thái. Mỗi mảnh sẽ cho bạn tách logic. Nếu bạn có hơn 100 dòng mã trong hoạt động của mình - điều đó có nghĩa là bạn làm điều gì đó sai. –

+0

Cảm ơn bạn đã trả lời. Tôi vừa mới bắt đầu xem xét NavigationView và có lẽ tôi cũng sẽ quan tâm đến hoạt động chính. Cảm ơn một lần nữa. –

Trả lời

8

Tôi đã ở trên thuyền tương tự và tôi đã sử dụng Phương thức hoạt động, theo cách đó tôi có từng Hoạt động với một nhóm các đoạn cho một nhấp chuột điều hướng cụ thể trên NavigationView. Rõ ràng là tôi sử dụng NavigationView, nhưng việc quản lý tất cả các mảnh đó chỉ với một MainActivity thực sự là một nhiệm vụ đau đớn.

Tôi thích sử dụng EachActivity quản lý các đoạn riêng của chúng khi chúng tôi nhấp vào một mục điều hướng. Điều này mang lại cho tôi một hiệu suất tốt hơn, vì tôi không cần phải lo lắng về vòng đời của soo nhiều mảnh và đó là backStack và thêm/xóa/hiện/ẩn địa ngục.

Tôi đã sử dụng Câu hỏi SO sau đây để khéo léo sử dụng Trình hướng dẫn thực hiện BaseActivity, và chia sẻ nó với tất cả các Hoạt động khác. Ma thuật thực sự là nó không trùng lặp mã, hoặc nó không chỉ là kỹ thuật thừa kế đơn giản cũ.

Here's the link, do check it out

tôi đã sử dụng phương pháp này trong hai dự án của tôi và nó đang chạy rất tốt cộng với tôi không phải đối phó với quản lý đoạn đúng ngay từ đầu.

+0

Cảm ơn bạn đã trả lời. Tôi đã làm như vậy vì tôi thực sự rất khó khăn trong việc quản lý một mảnh hoạt động đơn lẻ có mục đích hoàn toàn khác. Tôi đã kết thúc với một BaseActivity như bạn đã đề cập và một hoạt động chuyên biệt mở rộng trước đó cho mỗi nhóm các mảnh vỡ (liệt kê các mảnh, chỉnh sửa các đoạn, xem). fragments) –

+0

Tôi rất vui vì bạn đã viết giải pháp của mình, bạn có thể chấp nhận điều này làm câu trả lời của bạn;) – Rinav

0

Trước hết, quản lý điều hướng giữa các đoạn không khó. Bạn có thể kiểm tra google's tutorial. Tôi có thể gợi ý cho bạn một số chỉnh sửa nếu bạn gửi mã của bạn

Tôi nghĩ rằng đó là thiết kế xấu vì hai lý do

  • lô mã Rework
  • Nếu bạn muốn thay đổi mô hình điều hướng của bạn để nói tab, nó không thể thực hiện dễ dàng.
+0

Bạn có một điểm hợp lệ. Cảm ơn bạn đã liên kết (mặc dù tôi đã ở đó nhiều lần) và cảm ơn bạn đã trả lời. –

3

Tôi có những điểm sau đây để nộp:

  1. cách tiếp cận Đoạn là tốt hơn nhiều. Bạn nên sử dụng các đoạn mã cho trải nghiệm giao diện người dùng tốt hơn cho người dùng.

  2. suy nghĩ như thế này, hãy tưởng tượng màn hình của bạn như một chiếc giỏ của thông tin và nếu bạn có giỏ khác (i, e khác màn hình) mà rất nhiều dữ liệu sẽ phải được chuyển tới lui, sau đó, theo với tôi, tốt hơn là sử dụng các mảnh vỡ cho hai giỏ cùng với một hoạt động chứa. Và tất nhiên có thể có nhiều hơn hai giỏ/màn hình.

  3. Không có quy tắc cứng và nhanh mà bạn chỉ nên sử dụng phân đoạn hoặc hoạt động, nhưng google cho rằng tốt hơn là sử dụng sử dụng các đoạn có thể là.

  4. Nói chung, các nhà phát triển sử dụng các mảnh vỡ để nhóm liên quan đến luận với nhau và nó là tốt hơn để làm điều đó theo cách này vì nó sẽ cung cấp một nhóm hợp lý của bất cứ điều gì bạn đang cố gắng làm.

  5. Nó cũng rất dễ dàng để vượt qua java dữ liệu đối tượng giữa các mảnh vỡ thông qua các hoạt động container và với sự giúp đỡ của Giao diện. Đây cũng được coi là một cách tiếp cận rất mô-đun.

Phần còn lại phụ thuộc vào cách bạn muốn xác định luồng ứng dụng của mình. Tôi nghĩ rằng việc sử dụng các mảnh là một cách tiếp cận tốt hơn nhiều trong kịch bản của bạn. Sử dụng các hoạt động vùng chứa ở bất cứ nơi nào bạn nghĩ rằng logic liên quan đã thay đổi đáng kể.

+0

Tôi thực sự đánh giá cao sự giúp đỡ của bạn. Tôi sẽ giữ cách tiếp cận phân đoạn và sửa đổi đoạn mã mà tôi đã viết cho đến bây giờ để giao tiếp tốt hơn giữa các đoạn. Cảm ơn rất nhiều! –

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