为什么我在按钮周围有保证金?

时间:2019-06-12 13:56:44

标签: android xml

我正在尝试使用android studio构建我的第一个计算器应用程序,我熟悉Java,但不熟悉UI和XML文件。 我不明白为什么我在创建的按钮周围留有空白。

我尝试将layout_margin设置为0,但没有用。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="18"

    tools:context=".MainActivity">

    <TextView
        android:id="@+id/displayTextView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:textSize="30dp"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:gravity="left"
        android:background="@drawable/border"

        />

    <TextView
        android:id="@+id/finalResultTextView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:textSize="40dp"
        android:layout_margin="10dp"
        android:layout_weight="2"
        android:background="@drawable/border"
        android:gravity="center"
        />

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:layout_weight="3"
        android:weightSum="5"

        >

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="C"
            android:autoSizeTextType="uniform"
            android:autoSizeMaxTextSize="60dp"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="\u232b"
            android:autoSizeTextType="uniform"
            android:autoSizeMaxTextSize="60dp"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="%"
            android:autoSizeTextType="uniform"
            android:autoSizeMaxTextSize="60dp"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:text="{" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="}"
            android:autoSizeTextType="uniform"
            android:autoSizeMaxTextSize="60dp"
            />


    </LinearLayout>

    <LinearLayout

            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="3"
            android:weightSum="5"
            >

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="7"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:text="8"

            />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="9"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="("
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text=")"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />


    </LinearLayout>

    <LinearLayout

            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="3"
            android:weightSum="5"
            >

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="4"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="5"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="6"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="/"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="*"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />


        </LinearLayout>

    <LinearLayout

            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="3"
            android:weightSum="5"
            >

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="1"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="2"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="3"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="-"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="+"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />


    </LinearLayout>

    <LinearLayout

            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="3"
            android:weightSum="5"
            >

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="."
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="0"
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="60dp"
                />

            <Button
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:text="="
                android:autoSizeTextType="uniform"
                android:autoSizeMaxTextSize="100dp"
                />


                />
        </LinearLayout>

</LinearLayout>

即使将layout_margin设置为“ 0dp”,我仍然在每个按钮周围留有边距。

以下是屏幕截图:

You can see at the blueprint that each button have a margin around it

2 个答案:

答案 0 :(得分:0)

这是您的解决方案。默认情况下,Buttons的保证金为5dp。您可以通过减去负余量来去除哪个余量。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="18"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/displayTextView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:background="@drawable/border"
        android:gravity="left"
        android:textSize="30dp"

        />

    <TextView
        android:id="@+id/finalResultTextView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="10dp"
        android:layout_weight="2"
        android:background="@drawable/border"
        android:gravity="center"
        android:textSize="40dp" />

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:orientation="horizontal"
        android:weightSum="5"

        >

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="C" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="\u232b" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="%" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="{" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="}" />


    </LinearLayout>

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:orientation="horizontal"
        android:weightSum="5">

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="7" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="8"

            />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="9" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="(" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text=")" />


    </LinearLayout>

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:orientation="horizontal"
        android:weightSum="5">

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="4" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="5" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="6" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="/" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="*" />


    </LinearLayout>

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:orientation="horizontal"
        android:weightSum="5">

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="2" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="3" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="-" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="+" />


    </LinearLayout>

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:orientation="horizontal"
        android:weightSum="5">

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="." />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="1"
            android:autoSizeMaxTextSize="60dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="0" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="-5dip"
            android:layout_marginTop="-5dip"
            android:layout_marginRight="-5dip"
            android:layout_marginBottom="-5dip"
            android:layout_weight="3"
            android:autoSizeMaxTextSize="100dp"
            android:autoSizeTextType="uniform"
            android:padding="0dp"
            android:text="=" />


        />
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:0)

最简单的解决方案是为按钮提供背景图像,例如

 <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:autoSizeMaxTextSize="60dp"
        android:autoSizeTextType="uniform"
        android:background="@android:drawable/progress_horizontal"
        android:text=")" />

通过这种方式,您不必补偿Android Buttons的5dp标准余量, 因为如果您尝试在任何方向上以-5dp进行补偿,则按钮可能会相互渗透,从而导致错误的行为。

您还可以参考this链接。