Android布局:为什么我的按钮有自动填充,我怎么能摆脱它?

时间:2015-07-02 17:33:54

标签: android android-layout

Button with implicit padding

这是一个例子。出于某种原因,按钮中似乎存在隐式填充。我尝试在根级别RelativeLayout中将padding,minWidth和minHeight设置为0dp,但由于某种原因,填充仍然存在。我也尝试将这些属性放在每个子视图中,就像所有按钮和TextView一样,但仍然没有。知道这里发生了什么吗?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="0dp"
    android:minHeight="0dp"
    android:minWidth="0dp"
    android:background="@drawable/splash_screen"
    tools:context=".MainActivity">

            <!--
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"-->

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="30dp">


        <ImageView
            android:id="@+id/navdy_logo"
            android:src="@drawable/ic_navdy_logo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="false"
            android:paddingLeft="58dp"
            android:paddingRight="58dp"
            android:contentDescription="navdy logo">
        </ImageView>
        <!-- android:scaleType="fitXY" -->
        <!-- android:adjustViewBounds="true" -->

        <Space
            android:id="@+id/space"
            android:layout_below="@+id/navdy_logo"
            android:layout_height="55dp"
            android:layout_width="fill_parent">
        </Space>

        <TextView
            android:id="@+id/titleText"
            android:layout_below="@+id/space"
            android:layout_width="wrap_content"
            android:layout_height="73dp"
            android:gravity="center"
            android:textSize="30sp"
            android:fontFamily="sans-serif-light"
            android:textColor="#fff"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Design to change your driving experience"
            android:layout_centerHorizontal="true" />

        <Space
            android:id="@+id/space2"
            android:layout_below="@+id/titleText"
            android:layout_height="32dp"
            android:layout_width="fill_parent" >
        </Space>

        <Button
            android:id="@+id/create_account_button"
            android:layout_below="@+id/space2"
            android:layout_centerHorizontal="true"
            android:layout_height="50dp"
            android:layout_width="283dp"
            android:text="@string/create_account"
            android:textSize="18sp"
            android:textColor="#fff"
            android:backgroundTint="@color/md_blue_500">

        </Button>

        <Space
            android:id="@+id/space3"
            android:layout_below="@+id/create_account_button"
            android:layout_height="16dp"
            android:layout_width="fill_parent">
        </Space>

        <Button
            android:id="@+id/learn_more_button"
            android:layout_height="46dp"
            android:layout_width="279dp"
            android:scaleType="fitXY"
            android:textSize="18sp"
            android:background="@drawable/button_border_white"
            android:text="@string/learn_more"
            android:textColor="#fff"
            android:layout_marginLeft="0dp"
            android:layout_marginRight="0dp"
            android:layout_below="@+id/space3"
            android:layout_alignEnd="@+id/create_account_button">

        </Button>

        <Space
            android:id="@+id/space4"
            android:layout_below="@+id/learn_more_button"
            android:layout_height="24dp"
            android:layout_width="fill_parent">
        </Space>


        <RelativeLayout
            android:layout_below="@+id/space4"
            android:layout_width="270dp"
            android:layout_height="20dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:layout_centerHorizontal="true"
            android:id="@+id/bottom_text_for_signup">
            <TextView
                android:id="@+id/already_have_an_account_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_marginRight="15dp"
                android:textSize="17sp"
                android:fontFamily="sans-serif-light"
                android:textColor="#fff"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="@string/already_have_account"
                android:layout_centerHorizontal="true" />

            <TextView
                android:id="@+id/already_have_account_sign_in"
                android:text="@string/sign_in"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:textSize="17sp"
                android:fontFamily="sans-serif-light"
                android:textColor="@color/md_blue_500"
                android:textAppearance="?android:attr/textAppearanceLarge" />

        </RelativeLayout>

    </RelativeLayout>

</RelativeLayout>

我的TextViews上似乎还有顶部和底部填充:

TextView with implicit padding

编辑:

Anand Singh在评论中提到了dimens.xml。我实际上不知道这个资源做了什么,并决定检查出来。这是代码:

<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
</resources>

但是,我从来没有在我的布局中引用它,所以我不明白它是如何被使用的?而且,即使我在dimens.xml文件中注释掉这些样式,我仍然会遇到相同的填充问题。

1 个答案:

答案 0 :(得分:1)

问题现在是填充或边距,但是可以使用Button。您可以使用9-patch创建自己的Button,而不是设置负值: http://developer.android.com/tools/help/draw9patch.html