如何在Android中删除视图与其轮廓边框之间的多余空间?

时间:2019-06-24 04:11:57

标签: java android xml android-studio android-layout

screenshot of my Android studio editor

如何摆脱用红色标记的这些空格? 我试图将padding设置为零,并且没有任何变化

<Button
    android:id="@+id/req_delete_btn"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginEnd="4dp"
    android:text="Delete"
    app:layout_constraintBottom_toBottomOf="@+id/req_pp"
    app:layout_constraintEnd_toStartOf="@+id/req_accept_btn"
    app:layout_constraintHorizontal_chainStyle="spread"
    app:layout_constraintStart_toStartOf="@+id/req_name" />

注意:android:layout_width="0dp"是因为它具有另一个按钮的约束,并且会随之扩展。

完整的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView 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"
    app:layout_constraintTop_toTopOf="parent">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <ImageView
            android:id="@+id/req_pp"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_marginBottom="16dp"
            android:layout_marginStart="16dp"
            android:layout_marginTop="16dp"
            android:background="@drawable/default_pp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/req_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:textAppearance="@style/TextAppearance.AppCompat.Medium"
            app:layout_constraintStart_toEndOf="@+id/req_pp"
            app:layout_constraintTop_toTopOf="@+id/req_pp" />

        <Button
            android:id="@+id/req_accept_btn"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="16dp"
            android:layout_marginStart="4dp"
            android:text="Accept"
            app:layout_constraintBottom_toBottomOf="@+id/req_delete_btn"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/req_delete_btn" />

        <Button
            android:id="@+id/req_delete_btn"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="4dp"
            android:text="Delete"
            app:layout_constraintBottom_toBottomOf="@+id/req_pp"
            app:layout_constraintEnd_toStartOf="@+id/req_accept_btn"
            app:layout_constraintHorizontal_chainStyle="spread"
            app:layout_constraintStart_toStartOf="@+id/req_name" />


    </android.support.constraint.ConstraintLayout>

</android.support.v7.widget.CardView>

3 个答案:

答案 0 :(得分:0)

它是背景可绘制区域中按钮周围的阴影。创建您自己的背景,它将消失。但是请记住,当您设置android:background =“ @ null”时,该按钮会丢失其触摸动画,但事实证明,将背景设置为任何值都可以修复该边框。

您还可以尝试使用:<Button android:minHeight="0dp" android:minWidth="0dp"

或您按钮的样式:

<item name="android:minHeight">0dp</item>
<item name="android:minWidth">0dp</item>

或尝试:android:includeFontPadding="false"

答案 1 :(得分:0)

我认为这不是多余的空间,但是这些是按钮边框。使用Constraintlayout,您可以使用top,bottom,start,end约束来调整视图。

答案 2 :(得分:0)

我已将DELETE按钮的约束更改为imageview,与TextView约束相同,因此我可以使用margin来调整空间。 现在我放了android:layout_marginStart="14dp",但是您可以根据需要进行更改。

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView 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"
    app:layout_constraintTop_toTopOf="parent">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <ImageView
            android:id="@+id/req_pp"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:layout_marginStart="16dp"
            android:layout_marginTop="16dp"
            android:layout_marginBottom="16dp"
            android:background="@drawable/default_pp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/req_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:text="aaa gggg bbb"
            android:textAppearance="@style/TextAppearance.AppCompat.Medium"
            app:layout_constraintStart_toEndOf="@+id/req_pp"
            app:layout_constraintTop_toTopOf="@+id/req_pp" />

        <Button
            android:id="@+id/req_accept_btn"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="4dp"
            android:layout_marginEnd="16dp"
            android:text="Accept"
            app:layout_constraintBottom_toBottomOf="@+id/req_delete_btn"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/req_delete_btn" />

        <Button
            android:id="@+id/req_delete_btn"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="14dp"
            android:layout_marginLeft="15dp"
            android:layout_marginEnd="4dp"
            android:text="Delete"
            app:layout_constraintBottom_toBottomOf="@+id/req_pp"
            app:layout_constraintEnd_toStartOf="@+id/req_accept_btn"
            app:layout_constraintHorizontal_chainStyle="spread"
            app:layout_constraintStart_toEndOf="@+id/req_pp" />


    </android.support.constraint.ConstraintLayout>

</android.support.v7.widget.CardView>