我正在尝试使用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”,我仍然在每个按钮周围留有边距。
以下是屏幕截图:
答案 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链接。