Câu hỏi Android - Menu trượt với menu phụ


Tôi muốn ứng dụng của tôi 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?

Hiển thị bên dưới là menu trượt từ ứng dụng Zomato:

enter image description here

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

enter image description here


10
2018-03-07 06:27


gốc


hãy tưởng tượng rằ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
@ Daler tôi dint thử này một bcox tôi muốn trình đơn cấp 2 là một trình đơn thứ cấp và không phải là một cái mới, tôi có nghĩa là khi tôi bấm vào tùy chọn trình đơn đầu tiên, nó sẽ trở thành mờ và đi phía sau trình đơn thứ hai. - suresh cheemalamudi
@ 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? - suresh cheemalamudi
ok, bạn có menu trượt có 2 cấp độ, bạn muốn thêm cấp +1, vì vậy bạn biết cách tạo 2 trang trình bày cấp độ. Bạn có thể sử dụng cùng một kỹ thuật để thêm một trang trình chiếu nữa vào trang trình bày cấp thứ hai, tôi nghĩ rằng có thể với jfeinstein, mà không sửa đổi nó - Daler
@ Daler tôi nghĩ rằng tôi đã làm bạn bối rối. Tôi chỉ có một cấp độ như bây giờ. xem ở đây: i.imgur.com/ZT0pXQo.png đây là những gì tôi nhận được ngay bây giờ. Khi tôi nhấp vào nút "danh mục" được hiển thị trong hình ảnh, tôi sẽ nhận được một trình đơn khác trên đầu trang của nó. Hy vọng rõ ràng bây giờ. - suresh cheemalamudi


Các câu trả lời:


Kiểm tra Thành phần bảng trượt một tiện ích cho phép nhiều chế độ xem phủ lên với tương tác trượt để hiển thị nhiều dữ liệu độ sâu trong một màn hình hiển thị hiệu quả.

Nó cũng cung cấp bản giới thiệu của việc thực hiện được tham chiếu, bạn cũng có thể kiểm tra nó.

Cảm ơn.


6
2018-03-07 06:50



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 và thử chạy nó, nhưng nó lại để lại thông điệp logcat như được hiển thị ở đây pastebin.com/6iKBJ98i - suresh cheemalamudi
@sureshcheemalamudi Xin chào, Bạn có thể tìm thấy giải pháp cho yêu cầu này không. 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
thành phần rất lỗi và chậm chạp - agamov
liên kết bị hỏng, bạn nên chỉnh sửa câu trả lời của mình - DoruChidean


Bạn có thể dễ dàng thêm nhiều mức menu như bạn mong muốn bằng cách sử dụng menu 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à đầu ra:

enter image description here

Chú thích: Bạn cần nhập trình đơn trượt của JFeinstein làm thư viện và mở rộng hoạt động của mình từ SlidingFragmentActivity.


3
2018-02-25 11:19