Ngăn kéo điều hướng (Google+ so với YouTube)


403

Có ai biết làm thế nào để thực hiện một menu trượt như một số ứng dụng hàng đầu hiện nay không?

Các câu hỏi về Stack Overflow khác chưa có câu trả lời nào về cách thực hiện điều này, vì vậy tôi đang cố gắng thu thập càng nhiều thông tin để giúp đỡ người khác. Tất cả các ứng dụng tôi đề cập dưới đây làm rất tốt việc thực hiện menu trượt.

1. Google Plus (kể từ ngày 7/7/12)

Ảnh chụp màn hình trình đơn trên Google+

Bạn chỉ có thể đi từ màn hình thứ nhất sang màn hình thứ hai bằng cách nhấp vào biểu tượng G + ở góc trên bên trái. Lưu ý rằng toàn bộ màn hình di chuyển từ vị trí của nó và bị đẩy về phía bên phải của màn hình (bao gồm cả thanh hành động). Để quay lại màn hình đầu tiên, bạn có thể trượt phía bên phải trở lại tiêu điểm hoặc bạn có thể nhấp lại vào biểu tượng G +.

2. YouTube (kể từ ngày 7/7/12)

Ảnh chụp màn hình trình đơn YouTube

Bạn có thể đi từ màn hình thứ nhất sang màn hình thứ hai bằng hai phương pháp. Nhấp vào biểu tượng YouTube ở phía trên bên trái hoặc bạn có thể sử dụng cử chỉ vuốt để di chuyển biểu tượng sang bên phải. Điều này đã khác với ứng dụng G +. Thứ hai, bạn có thể thấy rằng thanh hành động vẫn được đặt (Không giống như G +). Cuối cùng, để lấy lại màn hình gốc, nó hoạt động giống như G +.


1
Bởi vẻ bề ngoài của nó, không nhiều người đã có kinh nghiệm làm việc trên một cái gì đó như thế này. Tôi khuyên bạn nên cố gắng tự mình thực hiện một cái gì đó và đến với SO với những vấn đề cụ thể mà bạn có thể gặp phải.
David Titarenco

7
Vâng, đó là lý do tại sao tôi đăng một câu hỏi SO khác mà tôi tin rằng nó đáng được chú ý hơn một chút. Tôi chỉ tự hỏi nếu có ai đó đã thực hiện thành công điều này và muốn chia sẻ sự khôn ngoan của họ.
EGHDK

1
@EGHDK Kiểm tra loạt bài viết này: android.cyrilmottier.com/?p=658
Alex Lockwood

2
Tôi đã trả lời câu hỏi này một thời gian trước đây, nhưng tôi đã quay lại nhấn mạnh rằng Prixing có thực đơn bay tốt nhất ngoài kia ... cho đến nay. Nó hoàn toàn đẹp, hoàn toàn mượt mà và nó khiến Facebook, Google+ và YouTube phải xấu hổ. EverNote cũng khá tốt ... nhưng vẫn không hoàn hảo như Prixing. Kiểm tra loạt bài đăng này về cách thực hiện menu bay ra (từ không ai khác ngoài chính nhà phát triển chính tại Prixing!).
Alex Lockwood

2
Với phiên bản gói hỗ trợ Android 13 (có thể 2013), có DrawerLayout để tạo một Ngăn kéo Điều hướng có thể được kéo vào từ cạnh của cửa sổ. Và, ngăn kéo điều hướng là một mẫu thiết kế bây giờ. developer.android.com/tools/extras/support-l
Library.html

Câu trả lời:


152

Chỉnh sửa # 3:

Mẫu Ngăn kéo Điều hướng được mô tả chính thức trong tài liệu Android!

nhập mô tả hình ảnh ở đây Kiểm tra các liên kết sau:

  • Tài liệu thiết kế có thể được tìm thấy ở đây .
  • Tài liệu dành cho nhà phát triển có thể được tìm thấy ở đây .

Chỉnh sửa # 2:

Roman Nurik (một kỹ sư thiết kế Android tại Google) đã xác nhận rằng hành vi được đề xuất là không di chuyển Action Bar khi mở ngăn kéo (như ứng dụng YouTube). Xem bài đăng trên Google+ này .


Chỉnh sửa số 1:

Tôi đã trả lời câu hỏi này một thời gian trước đây, nhưng tôi đã quay lại nhấn mạnh rằng Prixing có thực đơn bay tốt nhất ngoài kia ... cho đến nay . Nó hoàn toàn đẹp, hoàn toàn mượt mà và nó khiến Facebook, Google+ và YouTube phải xấu hổ. EverNote cũng khá tốt ... nhưng vẫn không hoàn hảo như Prixing. Kiểm tra loạt bài đăng này về cách thực hiện menu bay ra (từ không ai khác ngoài chính nhà phát triển chính tại Prixing!).


Câu trả lời gốc:

Adam Powell và Richard Fulcher nói về điều này trong 49:47 - 52:50 trong cuộc nói chuyện Google I / O có tiêu đề "Điều hướng trong Android".

Để tóm tắt câu trả lời của họ, kể từ ngày đăng bài này, menu điều hướng trượt ra không phải là một phần chính thức của tiêu chuẩn thiết kế ứng dụng Android. Như bạn có thể đã phát hiện ra, hiện tại không có hỗ trợ riêng cho tính năng này, nhưng đã có thảo luận về việc biến nó thành một bổ sung cho phiên bản sắp tới của gói hỗ trợ.

Liên quan đến các ứng dụng YouTube và G +, có vẻ kỳ lạ khi chúng hoạt động khác nhau. Dự đoán tốt nhất của tôi là lý do ứng dụng YouTube sửa vị trí của thanh hành động là,

  1. Một trong những tùy chọn điều hướng quan trọng nhất đối với người dùng sử dụng ứng dụng YouTube là tìm kiếm, được thực hiện trong SearchViewthanh hành động. Sẽ có ý nghĩa khi làm cho thanh hành động tĩnh về vấn đề này, vì nó sẽ cho phép người dùng luôn có tùy chọn để tìm kiếm video mới.

  2. Ứng dụng G + sử dụng a ViewPagerđể hiển thị nội dung của nó, do đó, làm cho menu kéo ra cụ thể cho nội dung bố cục (nghĩa là mọi thứ trong thanh hành động) sẽ không có ý nghĩa nhiều. Swiping được cho là cung cấp một phương tiện điều hướng giữa các trang, không phải là một phương tiện điều hướng toàn cầu. Đây có thể là lý do tại sao họ quyết định làm điều đó khác trong ứng dụng G + so với họ đã làm trong ứng dụng YouTube.

    Ở một lưu ý khác, hãy kiểm tra ứng dụng Google Play để biết phiên bản khác của "menu kéo ra" (khi bạn ở hầu hết trang bên trái, hãy vuốt sang trái và kéo ra, menu "nửa trang" sẽ xuất hiện).

Bạn đúng ở chỗ đây không phải là hành vi rất nhất quán, nhưng có vẻ như không có sự đồng thuận 100% trong nhóm Android về cách thực hiện hành vi này. Tôi sẽ không ngạc nhiên nếu trong tương lai các ứng dụng được cập nhật để điều hướng trong cả hai ứng dụng giống hệt nhau (chúng có vẻ rất quan tâm đến việc điều hướng nhất quán trên tất cả các ứng dụng do Google tạo ra trong cuộc nói chuyện).


73
Prixing, Evernote và Spotify đều có những nhóm khá lớn viết ứng dụng của họ Tôi là CEO của Prixing và tôi muốn nói chính xác là chúng tôi chỉ có một nhà phát triển Android thực sự (nhưng một người rất tài năng, Cyril Mottier)
EricLarch

Với phiên bản gói hỗ trợ Android 13 (có thể 2013), có DrawerLayout để tạo một Ngăn kéo Điều hướng có thể được kéo vào từ cạnh của cửa sổ. Và, ngăn kéo điều hướng là một mẫu thiết kế bây giờ. developer.android.com/tools/extras/support-l
Library.html

mặc dù NavigationDrawer có mặt trong V4 nhưng nó cần ActionBar chưa được cung cấp trong V4 nên không thể sử dụng nó trong các ứng dụng có cấp API dưới 11.
Nayanesh Gupte

1
@NayAneshGupte bạn luôn có thể sử dụng ActionBarSherlock để sử dụng ActionBar dưới API cấp 11.
tasomaniac

Có vẻ như không có cách nào để giới thiệu một độ trễ nhân tạo nếu bạn muốn hoạt hình gần gũi được mượt mà?
theblang

15

Gần đây tôi đã rẽ nhánh một dự án Github hiện tại có tên là "RibbonMothy" và chỉnh sửa nó để phù hợp với nhu cầu của tôi:

https://github.com/jaredsburrows/RunkMothy

Mục đích gì

  • Dễ truy cập: Cho phép dễ dàng truy cập vào một menu trượt vào và ra
  • Dễ thực hiện: Cập nhật cùng một màn hình bằng cách sử dụng số lượng mã tối thiểu
  • Tính độc lập: Không yêu cầu các thư viện hỗ trợ như ActionBarSherlock
  • Tùy biến: Dễ dàng thay đổi màu sắc và menu

Có gì mới

  • Đã thay đổi hình động trượt để phù hợp với ứng dụng Facebook và Google+
  • Đã thêm ActionBar tiêu chuẩn (bạn có thể chọn sử dụng ActionBarSherlock)
  • Menuitem đã sử dụng để mở Menu
  • Đã thêm khả năng cập nhật ListView trên Hoạt động chính
  • Đã thêm 2 ListView vào Menu, tương tự với ứng dụng Facebook và Google+
  • Đã thêm AutoCompleteTextView và Nút cũng để hiển thị các ví dụ về triển khai
  • Phương pháp đã thêm để cho phép người dùng nhấn 'nút quay lại' để ẩn menu khi mở
  • Cho phép người dùng tương tác với nền (ListView chính) và menu cùng lúc không giống như các ứng dụng Facebook và Google+!

ActionBar với Menu ra

ActionBar với Menu ra

ActionBar với Menu ra và tìm kiếm đã chọn

ActionBar với Menu ra và tìm kiếm đã chọn


5

Có một triển khai tuyệt vời NavigationDrawertuân theo Nguyên tắc Thiết kế Vật liệu của Google (và tương thích với API 10) - Thư viện MaterialDrawer (liên kết đến GitHub) . Tính đến thời điểm viết, tháng 5 năm 2017, nó được hỗ trợ tích cực.

Nó có sẵn trong repo Maven Central . Thiết lập phụ thuộc lớp:

compile 'com.mikepenz:materialdrawer:5.9.1'

Thiết lập phụ thuộc Maven:

<dependency>
    <groupId>com.mikepenz</groupId>
    <artifactId>materialdrawer</artifactId>
    <version>5.9.1</version>
</dependency>

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây


@lmiguelvargasf làm thế nào để bạn chụp ảnh phù hợp với một dự án GitHub vào câu trả lời?! Hãy chia sẻ ý tưởng của bạn.
naXa


2

Cá nhân tôi thích navigationDrawerứng dụng chính thức trong Google Drive. Nó chỉ hoạt động và làm việc tuyệt vời. Tôi đồng ý rằng ngăn kéo điều hướng không nên di chuyển thanh hành động vì là điểm chính để mở và đóng ngăn điều hướng.

Nếu bạn vẫn đang cố gắng để có được hành vi đó, gần đây tôi đã tạo một dự án được gọi SherlockNavigationDrawervà như bạn có thể mong đợi là việc triển khai Ngăn kéo Điều hướng với ActionBarSherlockvà hoạt động cho các thiết bị Honeycomb trước. Kiểm tra nó:

SherlockNavlationDrawer github

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.