更改视图 layout_width 属性(甚至更改为 0)不会影响实际视图宽度

Changing view layout_width attribute (even to 0) does not affect actual view width

我正在关注一个关于 RelativeLayout 的 Android 教程,它只是制作了两个 EditTexts(名字和姓氏字段)和一个 Button(不重要)。名字 EditText 视图的 layout_width 为 0dp,但在屏幕上仍然可见。我弄乱了宽度值,似乎无论我给它什么值,EditText 的大小都保持不变。这是为什么?跟layout_toLeftOf语句有关系吗?下面是教程的链接以及我的 xml 代码和结果输出的图片。

教程Link:http://tinyurl.com/jjnfw7z

id为first_nameEditText的宽度完全由这两个约束指定:

android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/last_name"
  • android:layout_alignParentLeft="true" 表示此 EditText 的左边缘必须与父视图的左边缘匹配。
  • android:layout_toLeftOf="@+id/last_name" 表示此 EditText 的右边缘必须与 ID 为 last_name.
  • 的兄弟视图的左边缘匹配

根据设计,它们优先于任何指定的 layout_width 值,这就是为什么您可以更改 dp 宽度而没有明显效果的原因。在这种情况下,通常将宽度设置为 0dp;由于 layout_width 属性是必需的,零值是最清楚的指示符,表明视图的宽度正在其他地方确定(由其他属性;在代码中等)