2010-10-14 31 views
27

Tôi đã thấy nhiều ứng dụng sử dụng phân lớp trong bố cục của chúng. Khi tôi nói về phân lớp tôi đề cập đến các lớp trong trục z liên quan đến quan điểm của người dùng. Một ứng dụng như vậy là ứng dụng Thông báo của Craigslist ở trên cùng của listView có một dấu cộng ở gần phía dưới để cho phép người dùng truy cập để thêm một mục danh sách bổ sung.Lớp bố cục? Trục Z?

Trong trường hợp của tôi, tôi thành công khi sử dụng GestureListener để lật trang. Hoạt động tốt, nhưng tôi muốn chồng lên một mũi tên trái và phải trong suốt trên các cạnh của trang nếu có các trang trở lại hoặc chuyển tiếp của trang mà người dùng hiện đang bật.

Tôi đã tìm kiếm, nhưng không hoàn toàn chắc chắn cách có 2 phần tử của Bố cục sử dụng cùng một không gian cùng một lúc. Trong trường hợp này, bạn có nội dung của trang (bố cục) và nhu cầu về thứ gì đó trên đầu (trục z) của bố cục đó.

Ai đó có thể chỉ cho tôi đúng hướng không?

Trả lời

81

Thử sử dụng FrameLayout.

FrameLayout luôn đặt mọi thứ lên nhau và luôn tham chiếu đến góc trên bên trái, vì vậy bạn sẽ cần sử dụng bố cục riêng biệt bên trong FrameLayout để đặt các đối tượng của bạn vào màn hình.

Hãy nhớ rằng android sẽ đặt mọi thứ vào bố cục của bạn theo thứ tự chúng được liệt kê, vì vậy hãy đặt các đối tượng ở cuối bố cục bạn muốn ở gần đầu màn hình.

Dưới đây là một ví dụ nhanh (đừng quên để thêm dữ liệu tiêu đề xml thích hợp để các nút trên cùng):

<FrameLayout> 
    <RelativeLayout> 
    <!-- Place the objects you want on the bottom here --> 
    </RelativeLayout> 


    <RelativeLayout> 
    <!-- Place the objects you want on the top here --> 
    </RelativeLayout> 
</FrameLayout> 
13

Ngoài nhỏ để câu trả lời trước: để ngăn chặn onClick sự kiện trên "lớp" đáy thiết lập thuộc tính clickable = "true" to top "layer"

<RelativeLayout 
.... 
android:clickable="true"/> 

Nếu không, các nút bấm có thể nhấn qua lớp trên cùng.

Tôi đã tìm thấy sự cố này khi tôi cố gắng che giao diện người dùng bằng lớp RelativeLayout với nền nửa trong suốt.

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