2012-07-04 24 views
5

Tôi muốn có menu như Facebook trong ứng dụng của mình. Có nhiều chủ đề về điều này và tất cả chúng đề xuất sử dụng thư viện mà thực sự chỉ cần chụp màn hình của màn hình và trượt hình ảnh về phía bên phải để hiển thị menu ở bên trái và hình ảnh trượt với một số chuyển đổi. Nhưng trong trường hợp đó, bố cục ở bên phải không thể nhấp được vì ảnh của nó.Trình đơn trượt lide của Facebook (Không sử dụng thư viện đó)

Nhưng tôi có một số cách khác để làm điều đó trong đó tôi có bố cục gốc đã có Bố cục menu và Bố cục nội dung. Nhưng bố trí gốc được thiết lập một số lợi nhuận tiêu cực về phía bên trái để nó không nhìn thấy được. Giống như this-

Content when menu is not pressed

Khi người dùng nhấn nút menu, cách bố trí menu được giảm xuống lề trái quyền và rễ bố trí được thiết lập là 0. Vì vậy, bây giờ những gì chúng ta thấy là this-

Content when menu is pressed and menu layout is shown

Bây giờ, vấn đề thực sự bắt đầu ở đây

tôi muốn trượt cả hai bố trí với một số hình ảnh động. Vì vậy, khi tôi làm sống động bố cục Trình đơn & Bố cục nội dung, hoạt ảnh cho cả bố cục không có cùng tốc độ ngay cả khi tôi áp dụng cùng một hình động cho nó. Vì vậy, tôi đã cố gắng để Shift ROOT LAYOUT chỉ về phía phải/trái bằng cách đặt lề cho nó. Nhưng khi làm như vậy không có gì được hiển thị trên màn hình. Tôi làm sai ở đâu. Cách tôi đặt lề được hiển thị tại đây-

int width = leftLayout.getWidth(); 
isLayoutShown = !isLayoutShown; 
if(isLayoutShown){ 
    rootLayoutParams.setMargins(0, 0, 0, 0); 
    rootLayout.setLayoutParams(rootLayoutParams);  
}else{ 
    rootLayoutParams.setMargins(-width, 0, 0, 0); 
    rootLayout.setLayoutParams(rootLayoutParams); 
} 
+0

Bạn có may mắn với điều này không? – EGHDK

+0

Có, vấn đề được giải quyết bằng cách nào đó. Vui lòng kiểm tra câu trả lời dưới đây. – Rajkiran

+0

Bạn có thể muốn xem câu trả lời cho câu hỏi này: http://stackoverflow.com/q/17884277/1491212 –

Trả lời

4

Cuối cùng, bằng cách nào đó tôi có thể làm điều đó. Dưới đây là các mã được sử dụng khi tôi bấm vào nút menu ở góc trên bên trái:

@Override 
public void onClick(View v) { 
rootLayoutParams = new LayoutParams(rightLayout.getWidth(), 
    rightLayout.getHeight()); 

if (lhsMenu.getVisibility() == View.GONE) { 
    lhsMenu.setVisibility(View.VISIBLE); 
    Animation slideRight = setRightSlidingAnimation(); 
    rightLayout.setAnimation(slideRight); 
    lhsMenu.setAnimation(slideRight); 
} else { 
    Animation slideLeft = setLeftSlidingAnimation(); 
    rightLayout.setAnimation(slideLeft); 
    lhsMenu.setAnimation(slideLeft); 
    lhsMenu.setVisibility(View.GONE); 
    } 
} 

Cập nhật: Ngoài ra thiết lập lề sang trái và bên phải (nếu cần thiết) của rightLayout để các rightLayout sẽ không co lại.

_rightLayoutParams.setMargins(width, 0, -width, 0);

nơi width = 200 trong trường hợp của tôi.

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