2013-05-27 33 views
0

enter image description here低于线性布局

删除按钮的额外空间有下面的按钮这个额外的空间,我不知道为什么会在那里。我尝试了一切,寻找有这种问题的人,可惜我什么也没找到。这是要么删除额外的空间和/或降低完美对齐。

这里是我的xml文件

<RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <LinearLayout 
      android:id="@+id/button_layout" 
      android:layout_alignParentTop="true" 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="#262626" 
      android:gravity="center"> 
      <Button 
       android:id="@+id/receipts_button" 
       android:background="@android:color/transparent" 
       android:drawableTop="@drawable/preview_save_icon" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"/> 
      <Button android:id="@+id/capture_button" 
       android:background="@android:color/transparent" 
       android:drawableTop="@drawable/preview_upload_icon" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"/> 
      <Button android:id="@+id/settings_button" 
       android:background="@android:color/transparent" 
       android:drawableTop="@drawable/preview_discard_icon" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"/> 
     </LinearLayout> 

回答

1

是否有您使用的按钮,而不是ImageView的任何原因?您正在使用android:drawableTop,它会将图像放置在顶部,并在文字底部留出一些空间! 由于您不想使用文字,因此我更容易用ImageView替换它,并将图片设置为来源。因此,这将在视图中居中:

<LinearLayout 
      android:id="@+id/button_layout" 
      android:layout_alignParentTop="true" 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="#262626" 
      android:gravity="center"> 
      <ImageView 
       android:id="@+id/receipts_button" 
       android:background="@android:color/transparent"     
       android:src="@drawable/ic_launcher" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"/> 
      <ImageView android:id="@+id/capture_button" 
       android:background="@android:color/transparent" 
       android:src="@drawable/ic_launcher"     
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"/> 
      <ImageView android:id="@+id/settings_button" 
       android:background="@android:color/transparent" 
       android:src="@drawable/ic_launcher" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"/> 
     </LinearLayout> 
+0

谢谢。这帮助我很多:) – kev

+0

只是以防万一你还没有尝试它下面的RKN答案也会集中图标,但它也会拉伸它们来填充整个空间。你可以根据你想要的行为来玩弄背景和src。 – caiocpricci2

0

试试这个, 其实当你设置的android:比重=“中心”,其属于布局本身,当你说layout_gravity那么这将适用于布局的孩子。

android:layout_gravity="center_vertical" 
0

首先,拥有许多嵌套布局并不是一个好习惯。在你的情况下,你可以删除LinearLayout或RelativeLayout。除此之外,虽然这将是有益的张贴整个XML, 我建议在LinearLayout中取出android:layout_alignParentTop="true",也许将是这样的:android:layout_gravity="bottom"

0
  • 删除android:drawableTop属性和 android:background属性给Button图像。 android:drawableTop会将您的图像放置在顶部。
  • 设置layout_gravity属性center_vertical为 按钮

    <LinearLayout 
         android:id="@+id/button_layout" 
         android:layout_alignParentTop="true" 
         android:orientation="horizontal" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:background="#262626" 
         android:gravity="center"> 
         <Button 
          android:id="@+id/receipts_button" 
          android:background="@drawable/preview_save_icon" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_weight="1"/> 
         <Button android:id="@+id/capture_button" 
          android:background="@drawable/preview_upload_icon" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_weight="1"/> 
         <Button android:id="@+id/settings_button" 
          android:background="@drawable/preview_discard_icon" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:layout_weight="1"/> 
        </LinearLayout> 
    
0

原因是正确的gameower说。 除此之外,如果你想继续使用Buttons那么你只需要用android:drawableLeft代替android:drawableTop,你应该得到你想要的。

希望肝。