2013-03-15 48 views
8

Tôi đang sử dụng cả hai SlidingMenuCrouton, nhưng tôi đã phát hiện ra rằng menu trượt chồng lên thông báo croutonCrouton + SlidingMenu chồng chéo

crouton and slidingmenu overlap

tôi sẽ báo cáo vấn đề trong github, nhưng tôi don' t biết nơi mà lỗi thuộc về.

Cyril Mottier đề cập trong số Prixing article about in-layout notifications sự tồn tại của 3 bối cảnh, menu bên trái có một bối cảnh riêng. Bằng cách đó, các trang trình bày Thông báo với phần còn lại của nội dung.

enter image description here

Bởi vì cả hai SlidingMenu và Crouton sử dụng bối cảnh hoạt động, có lẽ điều này chỉ đơn giản là không thể cứu vãn. Chúng tôi có thể dễ dàng gọi

Crouton.cancelAllCroutons(); 

trước khi hiển thị SlidingMenu, nhưng tôi thích tính năng trượt của Prixing.

Hy vọng rằng các tác giả thư viện có thể xác nhận lỗi hoặc làm sáng tỏ một số lỗi.

Cảm ơn!

EDIT:

Tôi đang sử dụng SlidingMenu bằng cách tạo ra các đối tượng và gắn nó vào hoạt động

private void configureSideMenu() { 
    mSlidingMenu = new SlidingMenu(this); 
    mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
    mSlidingMenu.setFadeDegree(0.35f); 
    mSlidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
    mSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
    mSlidingMenu.setMenu(R.layout.menu_frame); 
    getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame, new MySideMenuFragment()).commit(); 
} 

Và Crouton, tôi đoán chỉ có một cách để sử dụng nó

Crouton.showText(this, R.string.error_not_logged_in, Style.ALERT); 

Nơi này là hoạt động tương tự cho cả hai trường hợp

+1

Bạn xây dựng SlidingMenu và hiển thị Crouton như thế nào? Tôi đang mở rộng SlidingActivity và tôi không có vấn đề này. – Nachi

+0

@Nachi cảm ơn, hãy xem câu hỏi được cập nhật. Có lẽ nếu tôi mở rộng từ SlidingActivity sẽ khắc phục vấn đề ... Tôi sẽ thử nó, và nếu nó sửa chữa nó, tôi sẽ báo cáo một lỗi trong dự án SlidingMenu, vì tôi không nhớ đọc có sự khác biệt trong việc sử dụng thư viện cách này hay cách khác (có lẽ tôi sai và được chỉ định) – Maragues

Trả lời

6

Bạn có thể dễ dàng đính kèm Crouton vào một số ViewGroup cụ thể.

Tất cả những gì bạn cần làm là gọi Crouton.makeText(Activity, CharSequence, Style, ViewGroup), Crouton.make(...) hoặc Crouton.show(...).

Đã tạo Crouton sau đó được đính kèm vào ViewGroup và sẽ trượt ra với bố mẹ khi mở SlidingMenu.

Vì vậy, khi bạn đang tạo Crouton từ một Fragment

Crouton.showText(this, R.string.error_not_logged_in, Style.ALERT, (ViewGroup) getView()); 

khác bạn có thể thêm nó vào bất kỳ ViewGroup (thậm chí bằng id tài nguyên), mặc dù tôi khuyên bạn nên có một FrameLayout để gắn Crouton để .

+0

Cảm ơn! Tôi đã thực hiện thành công giải pháp của bạn, nhưng để mở rộng nó cho tất cả các màn hình của tôi, tôi phải đi qua tất cả.xml và thêm một cái nhìn bổ sung ở phía trên, nghe có vẻ rất tệ và khó: -/Đơn giản gắn nó vào nội dung [(ViewGroup) mSlidingMenu.getContent()] tôn trọng các thuộc tính trọng lực bố trí, do đó crouton có thể kết thúc ở giữa màn hình. Dù sao, cảm ơn rất nhiều cho thư viện và cho thời gian của bạn. – Maragues

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