删除线性布局下方按钮的额外空间

时间:2013-05-27 11:09:38

标签: android xml

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>

5 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

试试这个, 实际上当你设置android:gravity =“center”时它属于布局本身,当你说layout_gravity时,这将适用于布局的孩子。

android:layout_gravity="center_vertical"

答案 2 :(得分:0)

首先,拥有许多嵌套布局不是一个好习惯。在您的情况下,您可以删除LinearLayout或RelativeLayout。除此之外,尽管发布整个xml会很有帮助, 我建议删除LinearLayout中的android:layout_alignParentTop="true",并可能添加以下内容:android:layout_gravity="bottom"

答案 3 :(得分:0)

  • 删除android:drawableTop属性并提供Button图片 android:background属性。 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>
    

答案 4 :(得分:0)

gameower 正确告知了这一点。 除此之外,如果您想继续使用Buttons,则只需将android:drawableTop替换为android:drawableLeft即可获得所需内容。

希望肝脏。