在约束布局中,视图不可见。

4
在约束布局中,我有一个按钮,上面有一个位于该按钮中心右侧区域的图像视图(id==R.id.imageView)。图像视图的背景是白色的右箭头。在设计视图和我的设备上,图像视图没有显示出来。我清理并构建了项目,但问题仍然存在。在下面的图像中,蓝色矩形部分应该是图像应该显示的区域。请提供解决方案...

enter image description here

XML:

  <?xml version="1.0" encoding="utf-8"?>
  <android.support.constraint.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">

 <TextView
    android:id="@+id/head"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/ph_verify_lbl_mrgn"
    android:text="@string/verify_your_phone_number"
    android:textColor="#bb2b67"
    android:textSize="@dimen/ph_verify_head_tsxtsze"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

 <TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="4dp"
    android:text="@string/lorem_ipsum_lorem_ipsum"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/head" />

 <EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_marginEnd="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:hint="@string/ph_hint"
    android:inputType="number"
    android:paddingTop="16dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView" />

 <ImageView
    android:id="@+id/imageView"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginStart="8dp"

    android:background="@drawable/arrow"
    app:layout_constraintBottom_toBottomOf="@+id/button"
    app:layout_constraintEnd_toEndOf="@+id/button"
    app:layout_constraintHorizontal_bias="0.909"
    app:layout_constraintStart_toStartOf="@+id/button"
    app:layout_constraintTop_toTopOf="@+id/button"
    app:layout_constraintVertical_bias="0.571" />

 <Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="89dp"
    android:layout_marginTop="16dp"
    android:background="@drawable/button_bg"
    android:text="@string/next"
    android:textColor="#ffffff"
    android:textSize="22sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText"
    app:layout_constraintVertical_bias="0.25" />

   </android.support.constraint.ConstraintLayout>
1个回答

1
请将 ImageView 标签放置在 Button 标签下方。 由于您已为按钮提供了 match parent 并设置了水平填充的约束条件,因此 ImageView 被重叠覆盖。 您可以通过保持 Button 的属性 clickable="false" 并在 ImageView 上放置一个点击监听器来进行测试。
<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="89dp"
    android:layout_marginTop="16dp"
    android:background="@drawable/button_bg"
    android:text="@string/next"
    android:textColor="#ffffff"
    android:textSize="22sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText"
    app:layout_constraintVertical_bias="0.25" />

<ImageView
    android:id="@+id/imageView"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginStart="8dp"

    android:background="@drawable/arrow"
    app:layout_constraintBottom_toBottomOf="@+id/button"
    app:layout_constraintEnd_toEndOf="@+id/button"
    app:layout_constraintHorizontal_bias="0.909"
    app:layout_constraintStart_toStartOf="@+id/button"
    app:layout_constraintTop_toTopOf="@+id/button"
    app:layout_constraintVertical_bias="0.571" />

更新

如果这个方法不起作用,可以给ImageView设置一个高度:

android:elevation="2dp"


在RelativeLayout中,我以前是按照您建议的方式进行操作的,但在ConstraintLayout中,这并没有起到帮助作用。 - jobin
看到更新了。我尝试了一下,对我有效。干杯 :) - Geet Choubey
那个有效......我以为你说的是按钮重叠。但是提高高度有什么帮助呢? - jobin
按钮确实重叠在ImageView上,否则高度属性就不会起作用。ImageView是一个平面视图,而按钮是可点击的视图,默认情况下具有高度属性。我“认为”这就是问题所在。 - Geet Choubey
点赞并接受为答案。这将为您带来动力提升。谢谢。 - jobin
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接