【问题标题】:Why layout_height and width should be defined?为什么要定义 layout_height 和 width?
【发布时间】:2018-04-28 09:28:03
【问题描述】:

我不明白为什么当我在 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>

谁能解释一下为什么在请求焦点时我必须设置高度和宽度?

谢谢!

【问题讨论】:

  • 您在关闭标签之前将&lt;requestFocus/&gt; 放入TextView。实际上它应该是TextView 中的子标签,而不是字段。

标签: android xml android-layout


【解决方案1】:

在我看来,您在另一个地方使用尖括号(>)。尝试以下方法:

<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>

【讨论】:

  • 编译器没有抱怨,但不幸的是 textview 没有得到焦点......
  • 您在 textView 中期望的焦点是什么,它只会显示您的数据。焦点可用于 editText 在活动开始时有一个光标。你的问题够清楚。请说明您的要求。
  • 我会重新提出这个问题。
猜你喜欢
  • 2016-11-03
  • 2016-02-09
  • 2023-04-09
  • 2011-06-28
  • 2011-10-21
  • 1970-01-01
  • 2012-11-14
  • 1970-01-01
相关资源
最近更新 更多