为什么复选框矩形比包含它的容器小得多?

Why checkbox rectangle is by far smaller than the container that contains it?

可以理解为什么有颜色(选中时)和无色(未选中时)的矩形没有占据所有位置(请查看随附的屏幕截图)。 尝试调查这个问题,但没有得出任何结论。 希望有人能在这里帮助我 布局 xml 是:

    <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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="@android:color/holo_blue_bright"
    tools:context=".MainActivity">


   <TextView
       android:id="@+id/textViewww"
       android:layout_width="150dp"
       android:layout_height="80dp"
       android:text="Just For Try"
       app:layout_constraintTop_toTopOf="parent"
       app:layout_constraintStart_toStartOf="parent"
       android:gravity="center"
       android:background="#34ab56"
       android:layout_margin="15dp"/>

    <Button
        android:id="@+id/button_b"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Draw Again On TextView"
        app:layout_constraintTop_toBottomOf="@id/textViewww"
        app:layout_constraintStart_toStartOf="parent"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        app:layout_constraintTop_toBottomOf="@id/button_b"
        app:layout_constraintStart_toStartOf="parent"
        android:layout_marginTop="15dp"/>

    <androidx.appcompat.widget.AppCompatCheckBox
        android:id="@+id/checkbox_checkbox"
        android:layout_width="42dp"
        android:layout_height="42dp"
        android:layout_marginTop="10dp"
        app:layout_constraintTop_toBottomOf="@id/textView2"
        app:layout_constraintStart_toStartOf="parent"
        android:layout_marginStart="20dp" />


</androidx.constraintlayout.widget.ConstraintLayout>

根据我的研究,CheckBox 大小基于可绘制对象的边界,因此当您指定

        android:layout_width="42dp"
        android:layout_height="42dp"

如果合理的话,您实际上过度调整了视图而不是内容。

使用 wrap_content 再次获得紧密贴合,或提供您自己的支持 42dp width/height.

的自定义绘图