代码之家  ›  专栏  ›  技术社区  ›  anon

这个简单的布局有什么问题?

  •  3
  • anon  · 技术社区  · 14 年前

    我试图定义一个包含另一个线性布局的线性布局,该布局应始终位于水平和垂直中心。图像视图应始终垂直居中放置在父布局的右侧:

                                     A                                           B
    

    我定义如下:

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="60px">
    
         <LinearLayout android:id="@+id/footer" android:orientation="horizontal" android:layout_height="50px" android:paddingTop="5px" android:layout_width="wrap_content" android:background="@drawable/footer_border" android:paddingRight="5px" android:paddingLeft="5px" android:layout_gravity="center_horizontal">
            <ImageButton android:id="@+id/libraryButton" android:layout_height="wrap_content" android:src="@drawable/library_button" android:background="#000000" android:layout_width="wrap_content"/>
            <ImageButton android:id="@+id/bookButton" android:layout_height="wrap_content" android:src="@drawable/book_button" android:background="#000000" android:layout_width="wrap_content" android:paddingLeft="15px" android:paddingRight="15px"/>
            <ImageButton android:id="@+id/workspaceButton" android:layout_height="wrap_content" android:src="@drawable/workspace_button" android:background="#000000" android:layout_width="wrap_content"/>
         </LinearLayout>
    
         <ImageView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="right"
         android:id="@+id/loading">
         </ImageView>
    
         </LinearLayout> 
    

    但不幸的是它不起作用…线性布局(A)和图像视图(B)位于左侧….但我把重力设为中心,对吗?为什么?

    2 回复  |  直到 14 年前
        1
  •  1
  •   hara    14 年前

    水平方向线性布局中的重力只对顶部起作用, 底部和中心垂直值( here )

    我认为实现这一目标的最佳方法是使用相对布局而不是线性布局。例如:

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="60px">
    
    <LinearLayout android:id="@+id/footer" 
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:center_in_parent="true"
    >
    ....
    </LinearLayout>
    <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/loading"
    android:align_parent_right="true">
    </ImageView>
    
    </RelativeLayout> 
    

    对不起,我现在不能测试它。我希望它是正确的。

        2
  •  0
  •   Cristian    14 年前

    尝试设置 android:layout_alignParentRight 参数

    <ImageView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="right"
     android:id="@+id/loading"
     android:layout_alignParentRight="true">
    </ImageView>
    

    告诉我这是否有效…