0

在此处输入图像描述

按钮下方有这个额外的空间,我不知道为什么会在那里。我尝试了一切并寻找遇到这种问题的人,但遗憾的是我什么也没找到。要么我想删除额外的空间和/或降低它完全对齐。

这是我的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>
4

5 回答 5

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>
于 2013-05-27T11:17:32.517 回答
0

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

android:layout_gravity="center_vertical"
于 2013-05-27T11:17:58.317 回答
0

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

于 2013-05-27T11:18:23.457 回答
0
  • 删除android:drawableTop属性并在属性中给出Button图像 android:backgroundandroid: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>
    
于 2013-05-27T11:19:23.053 回答
0

gameower正确地告诉了这个原因。除此之外,如果你想继续使用,Buttons那么你只需要替换android:drawableTopandroid:drawableLeft你应该得到你想要的。

希望有帮助。

于 2013-05-27T11:47:03.197 回答