2010-02-15 51 views
21

Tôi đã rối tung với điều này trong một vài ngày nay, hy vọng một người nào đó ở đây có thể cho tôi mượn một tay.Chế độ xem nổi trên Android (trên các chế độ xem khác)

Tôi có bố cục hai cột đơn giản, bên trái là thanh điều hướng có các nút, bên phải là bảng điều khiển nội dung. Khi người dùng chạm vào một trong các nút (ví dụ: nút thứ ba xuống), tôi muốn có chế độ xem nổi được căn chỉnh ở bên phải của nút này nhưng nổi ở đầu ngăn nội dung. Dưới đây là hình ảnh minh họa ý tôi: Layout

Mọi thứ tôi đã thử đẩy menu nổi bên trong thanh điều hướng hoặc bên trong bảng nội dung, không phải là thứ tôi muốn. Bất kỳ ý tưởng? Đây là những gì tôi có cho đến nay:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:layout_alignParentLeft="true" 
     android:id="@+id/navigation_bar" 
    > 
     <FrameLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.14" 
     > 
      <ImageButton 
       android:id="@+id/button1_btn" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/icon" 
       android:layout_gravity="center" 
      /> 
     </FrameLayout> 
     <FrameLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.14" 
     > 
      <ImageButton 
       android:id="@+id/button2_btn" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/icon" 
       android:layout_gravity="center" 
      /> 
     </FrameLayout> 
    </LinearLayout> 
    <FrameLayout 
     android:id="@+id/content" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.14" 
     android:layout_toRightOf="@id/navigation_bar" 
    > 
    </FrameLayout> 
</RelativeLayout> 
+9

+1 trước bản vẽ: P – LuckyMe

+0

Dave, bạn đã quản lý để triển khai điều này chưa. Tôi yêu cầu phải làm một cái gì đó rất simmilar như vậy sẽ rất vui nếu bạn chia sẻ một số bit của việc thực hiện của bạn. –

Trả lời

14

FrameLayout cho phép bạn có chế độ xem chồng lên một chế độ xem khác. Tôi không chắc rằng nó có ý nghĩa để có chúng chỉ với một cái nhìn con, như bạn có trong ví dụ của bạn. Hãy thử có FrameLayout ở mức cao nhất, với chế độ xem "tĩnh" của bạn làm phần tử con đầu tiên và menu thả nổi làm phần tử con thứ hai.

developer documents có tổng quan tốt về các loại bố cục, nó có thể giúp bạn bắt đầu.

+2

'RelativeLayout' cũng hỗ trợ chế độ xem chồng chéo. – CommonsWare

+22

'RelativeLayout' kế thừa từ' FrameLayout'. – Ridcully

+0

Liên kết bị hỏng vào tháng 4 năm 2017, sử dụng [this] (https://developer.android.com/guide/topics/ui/declaring-layout.html) thay vì – Mendhak

-11

RelativeLayout là những gì bạn muốn.
FrameLayout chỉ được có một trẻ em và do đó thường chỉ được sử dụng cho trình giữ chỗ mà các bố cục khác đến sau (chẳng hạn như khung chính của hoạt động).
AbsoluteLayout không được dùng nữa và không được sử dụng.

RelativeLayout cho phép các chế độ xem chồng lên nhau và cho phép thực hiện, khá nhiều, bất cứ điều gì bạn muốn.

+14

FrameLayout hoàn toàn có thể có nhiều con. – ATom

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