2013-03-07 50 views
10

Tôi muốn ứng dụng của mình có sách khuôn mặt như menu trượt. Tôi google'd về vấn đề này và tìm thấy nhiều bài đăng trên mạng, điều này chỉ giúp tôi xây dựng một menu trượt đơn. Nhưng những gì tôi cần là, 2 cấp độ trượt menu tức là, khi tôi bấm vào một số tùy chọn trong menu trượt, nó sẽ mở một menu trượt trên đầu trang của nó (menu trượt đầu tiên sẽ mờ tại thời điểm này) như ứng dụng zomato như hình dưới đây. Tôi đã thử với thư viện trình đơn trượt của JFeinstein, nhưng tôi có thể xây dựng một menu trượt 2 cấp bằng cách sử dụng nó. Có thư viện nào khác để đạt được điều này hay tôi nên tự xây dựng một thư viện?Android - Menu trượt với menu phụ

Dưới đây là trượt đơn từ ứng dụng Zomato:

enter image description here

Khi tôi bấm vào "location" tùy chọn trên menu hiển thị ở trên, nó sẽ mở ra một menu thứ cấp như hình dưới đây. Tôi muốn có cùng một tính năng.

enter image description here

+3

hãy tưởng tượng menu trượt thứ hai là menu mới, vì vậy hãy gán một menu trượt khác cho menu thứ hai như bạn đã làm cho trình đơn tạo hai trang trình bày, khó khăn là gì? – Daler

+0

@Deler Tôi dint thử một bcox này tôi muốn trình đơn cấp 2 trở thành menu phụ và không phải là menu mới, ý tôi là khi tôi nhấp vào tùy chọn menu đầu tiên, nó sẽ bị mờ và đi sau menu thứ hai. –

+0

@Daler có thể tóm tắt nhận xét đầu tiên của bạn theo cách rõ ràng hơn không? –

Trả lời

6

Kiểm tra các Sliding Panel component một widget cho phép nhiều quan điểm được che phủ bằng cách trượt tương tác cho hiển thị nhiều dữ liệu sâu trong một màn hình hiển thị một cách hiệu quả.

Nó cũng cung cấp demo của việc triển khai được tham chiếu, bạn cũng có thể kiểm tra.

Cảm ơn.

+0

Tôi vừa tải xuống bản trình diễn để kiểm tra xem nó hoạt động như thế nào. Tôi nhập khẩu và cố gắng chạy nó, nhưng nó crahses để lại tin nhắn logcat như được hiển thị ở đây http://pastebin.com/6iKBJ98i –

+0

@sureshcheemalamudi Hi, Bạn có thể tìm thấy giải pháp cho yêu cầu này.Tôi có yêu cầu chính xác tương tự, để có được một menu trượt cấp 2, không may mắn cho đến bây giờ. Bạn có thể vui lòng giúp đỡ? Cảm ơn. – jasdmystery

+0

thành phần rất lỗi và chậm chạp – agamov

3

Bạn có thể dễ dàng thêm bao nhiêu cấp độ trình đơn tùy thích bằng trình đơn trượt của JFeinstein. Ý tưởng là sử dụng menu trượt như chế độ xem trượt sang trái hoặc phải của menu trượt chính và v.v. Mã hoàn chỉnh của menu cấp 2 với các chú thích và đầu ra được thêm vào để làm cho mọi thứ rõ ràng hơn.

public class MainActivity extends SlidingFragmentActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // dummy views - content view 
     TextView content = new TextView(this); 
     content.setBackgroundColor(Color.WHITE); 
     content.setText("content"); 
     // Menu view 
     TextView menu = new TextView(this); 
     menu.setBackgroundColor(Color.GREEN); 
     menu.setText("menu"); 
     // 2nd level menu view 
     TextView subMenu = new TextView(this); 
     subMenu.setBackgroundColor(Color.LTGRAY); 
     subMenu.setText("submenu"); 


     //configure sliding menu 
     SlidingMenu sm = getSlidingMenu(); 
     sm.setMode(SlidingMenu.SLIDING_WINDOW); 
     sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
     sm.setBehindOffset(80); 
     sm.setBehindScrollScale(0.25f); 
     sm.setFadeDegree(0.25f); 

     //Another sliding menu - for 2nd level or sub menu 
     SlidingMenu leftSlidingView = new SlidingMenu(this); 
     leftSlidingView.setMode(SlidingMenu.SLIDING_WINDOW); 
     leftSlidingView.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
     leftSlidingView.setBehindOffset(80); 
     leftSlidingView.setBehindScrollScale(0.25f); 
     leftSlidingView.setFadeDegree(0.25f); 

    //==== Required instruments has been created ;) lets put them at right places 

     // setting menu and sub-menu view 
     leftSlidingView.setContent(menu); // at center of left sliding view 
     leftSlidingView.setMenu(subMenu); // at left of left sliding view 

     //set content view 
     setContentView(content);   // at center of main sliding view 
     // finally, set leftSlidingView as behind content view of main view 
     setBehindContentView(leftSlidingView); // at left of main sliding view 

    } 
} 

Đây là kết quả:

enter image description here

Lưu ý: Bạn cần phải nhập khẩu JFeinstein trình đơn trượt như thư viện và mở rộng hoạt động của bạn từ SlidingFragmentActivity.

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