【发布时间】:2018-11-22 08:58:57
【问题描述】:
这是我在 ConstraintLayout 中的 GridLayout xml 代码
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
tools:context="solutions.elegant.com.procenty.activites.RabatActivity">
<android.support.v7.widget.GridLayout
android:layout_height="0dp"
android:layout_width="0dp"
android:layout_weight="4"
app:rowCount="3"
app:columnCount="4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_splaty"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
app:useDefaultMargins="false"
app:orientation="horizontal">
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_0"
android:text="0" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_1"
android:text="1"
/>
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_2"
android:text="2" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_3"
android:text="3" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_4"
android:text="4" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_5"
android:text="5" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_6"
android:text="6" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_7"
android:text="7" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_8"
android:text="8" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_9"
android:text="9" />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_kropka"
android:text="." />
<Button
style="@style/MyKeyboardButtons"
android:id="@+id/btn_remove"
android:text="l" />
</android.support.v7.widget.GridLayout>
</android.support.constraint.ConstraintLayout>
这是按钮样式的代码:
<style name="MyKeyboardButtons">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">0dp</item>
<item name="android:textSize">25sp</item>
<item name="android:textColor">#ffffff</item>
<item name="android:background">#151515</item>
<item name="layout_columnWeight">1</item>
<item name="layout_rowWeight">1</item>
<item name="android:onClick">modifyET</item>
</style>
这是可见的结果:
现在我不喜欢按钮之间没有空格的事实,所以首先我添加到按钮样式行:
<item name="android:layout_marginRight">2dp</item>
结果是:
我在 gridLayout 列之间添加了边距。现在我想在行之间添加边距,所以我再次在按钮样式中添加一条线:
<item name="android:layout_marginBottom">2dp</item>
结果不是我所期望的:
问题是这里出了什么问题?我该如何解决这个问题,以便我在两者都有利润 按钮之间的尺寸?
【问题讨论】:
-
为什么不给父级添加填充?
-
您的意思是向 GridLayout 本身添加填充?如果这是你的意思,那么它不起作用。它只是在 GridLayout 的不可见边框和 GridLayout 子级之间添加填充。
-
这很奇怪。
android:useDefaultMargins="false"怎么样,所有边距都与<item name="android:layout_margin">1dp</item>相同? -
嗨。感谢您的快速评论,并对我的延误感到抱歉。我尝试使用该解决方案,但不幸的是,结果与我最初问题中的最后一张图片相同。当我尝试将 android:useDefaultMargins="false" 添加到 gridLayout 时,android studio 想让我将这一行更改为 app:useDefaultMargins="false" 所以我这样做了。
-
嗨。也许问题与这个 GridLayout 在 ConstraintLyout 内的事实有关?我编辑了我的问题以添加 GridLayout 的父级,因为实际上 GridLayout 是更大布局的一部分。