为什么要定义layout_height和width?

时间:2018-04-28 09:28:03

标签: android xml android-layout

我不明白为什么当我在textView上添加requestFocus时,我需要定义layout_height和layout_width,但没有它我不会。

这是我没有requestFocus的XML。

 <TextView
    android:id="@+id/txtRespiratory"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="16dp"
    android:text="Respiratory Rate"
    android:textAppearance="@android:style/TextAppearance.Material.Large"
    app:layout_constraintStart_toEndOf="@+id/btnRespiratory"
    app:layout_constraintTop_toTopOf="@+id/btnRespiratory"/>

但是,当我修改为将焦点添加到TextView时,它要求layout_height和layout_width并崩溃。这是带有requestFocus的新代码。

 <TextView>
    android:id="@+id/txtRespiratory"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="16dp"
    android:text="Respiratory Rate"      
    android:textAppearance="@android:style/TextAppearance.Material.Large"
    app:layout_constraintStart_toEndOf="@+id/btnRespiratory"
    app:layout_constraintTop_toTopOf="@+id/btnRespiratory"
    <requestFocus/>
</TextView>

有人可以向我解释为什么在要求焦点时我必须设置高度和宽度吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

在我看来,你在另一个地方使用了角括号(&gt;)。尝试使用以下内容:

<TextView
    android:id="@+id/txtRespiratory"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="16dp"
    android:text="Respiratory Rate"
    android:textAppearance="@android:style/TextAppearance.Material.Large"
    app:layout_constraintStart_toEndOf="@+id/btnRespiratory"
    app:layout_constraintTop_toTopOf="@+id/btnRespiratory">
    <requestFocus/>
</TextView>