网格布局额外空间

时间:2017-11-22 15:50:43

标签: android

我正在尝试制作一个Android计算器应用程序,但是我坚持一件事,使用网格布局时会有一些额外的空间。

enter image description here

现在我知道我已经使用匹配父值作为布局高度和宽度,这可能是图像中额外间距的原因。

因为,我是Android的新手,我只是学习越来越多的android,有谁能让我知道,我怎样才能在网格布局上均匀分布这些按钮?

代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:id="@+id/constraintLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.tilak.myfirstapplication.MainActivity">


    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_constraintBottom_toTopOf="parent"
        app:layout_constraintEnd_toStartOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <EditText
            android:id="@+id/editText3"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:height="225dp"
            android:ems="10"
            android:layout_gravity="fill_horizontal"
            android:inputType="textMultiLine"
            tools:layout_editor_absoluteX="104dp"
            tools:layout_editor_absoluteY="207dp" />



        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:rowCount="5"
            android:columnCount="4"

            android:background="#ff0000"
            tools:layout_editor_absoluteX="8dp"
            tools:layout_editor_absoluteY="8dp">
            <Button
                android:id="@+id/button4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button"

                android:layout_row="0"
                android:layout_column="0"
                tools:layout_editor_absoluteX="136dp"
                tools:layout_editor_absoluteY="100dp" />

            <Button
                android:id="@+id/button5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button"
                android:layout_row="0"
                android:layout_column="1"
                tools:layout_editor_absoluteX="116dp"
                tools:layout_editor_absoluteY="289dp" />


            <Button
                android:id="@+id/button6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button"
                android:layout_row="0"
                android:layout_column="2"
                tools:layout_editor_absoluteX="129dp"
                tools:layout_editor_absoluteY="255dp" />



            <Button
                android:id="@+id/button7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button"
                android:layout_row="0"
                android:layout_column="3"
                tools:layout_editor_absoluteX="41dp"
                tools:layout_editor_absoluteY="180dp" />

            <Button
                android:id="@+id/button8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button"
                android:layout_row="1"
                android:layout_column="0"
                tools:layout_editor_absoluteX="64dp"
                tools:layout_editor_absoluteY="259dp" />



            <Button
                android:id="@+id/button9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="1"
                android:layout_column="1"
                android:text="Button" />

            <Button
                android:id="@+id/button10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button"
                android:layout_row="1"
                android:layout_column="2"
                tools:layout_editor_absoluteX="129dp"
                tools:layout_editor_absoluteY="217dp" />

            <Button
                android:id="@+id/button11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="1"
                android:layout_column="3"
                android:text="Button"
                tools:layout_editor_absoluteX="129dp"
                tools:layout_editor_absoluteY="168dp" />


            <Button
                android:id="@+id/button12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="2"
                android:layout_column="0"
                android:text="Button" />

            <Button
                android:id="@+id/button13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="2"
                android:layout_column="1"
                android:text="Button" />

            <Button
                android:id="@+id/button14"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="2"
                android:layout_column="2"
                android:text="Button" />
            <Button
                android:id="@+id/button15"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="2"
                android:layout_column="3"
                android:text="Button" />




            <Button
                android:id="@+id/button16"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="3"
                android:layout_column="0"
                android:text="Button" />


            <Button
                android:id="@+id/button17"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="3"
                android:layout_column="1"
                android:text="Button" />

            <Button
                android:id="@+id/button18"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="3"
                android:layout_column="2"
                android:text="Button" />


            <Button
                android:id="@+id/button19"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="3"
                android:layout_column="3"
                android:text="Button" />
            <Button
                android:id="@+id/button20"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="4"
                android:layout_column="0"
                android:text="Button" />
            <Button
                android:id="@+id/button21"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="4"
                android:layout_column="1"
                android:text="Button" />
            <Button
                android:id="@+id/button22"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="4"
                android:layout_column="2"
                android:text="Button" />
            <Button
                android:id="@+id/button23"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="4"
                android:layout_column="3"
                android:text="Button" />
        </GridLayout>
    </LinearLayout>


</android.support.constraint.ConstraintLayout>

2 个答案:

答案 0 :(得分:1)

我建议使用weight属性使子视图共享空间。这里有另一篇关于StackOverflow的帖子,其中有一个很好的答案涵盖了这个主题:

https://stackoverflow.com/a/30245753/2281718

简而言之,只需将宽度设置为0dp并为所有孩子添加android:layout_columnWeight="1"

<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_columnWeight="1"
    ...
    />

答案 1 :(得分:0)

使用这样的占位符。 这不是确切的XML。

constant