Android ConstraintLayout - 将一个视图放在另一个视图之上

新手上路,请多包涵

我正在尝试在 ProgressBar Button (两者都在 ConstraintLayout 内)。

 <Button
    android:id="@+id/sign_in_button"
    android:layout_width="280dp"
    android:layout_height="75dp"
    android:layout_marginBottom="75dp"
    android:layout_marginTop="50dp"
    android:text="@string/sign_in"
    android:textColor="@color/white"
    android:textSize="22sp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/passwordEditText"
    app:layout_constraintVertical_bias="0.0"/>

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toTopOf="@+id/sign_in_button"
    android:layout_marginTop="8dp"
    app:layout_constraintBottom_toBottomOf="@+id/sign_in_button"
    android:layout_marginBottom="8dp"
    app:layout_constraintVertical_bias="0.5"
    android:layout_marginLeft="8dp"
    app:layout_constraintLeft_toLeftOf="@+id/sign_in_button"
    android:layout_marginRight="8dp"
    app:layout_constraintRight_toRightOf="@+id/sign_in_button"/>

但即使在 --- 中的 ProgressBar bringToFront onCreate ,它总是停留在 Button 后面。

 ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar);
progressBar.bringToFront();

原文由 Adam Johns 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

ProgressBar 上设置标高; 2dp 似乎有效。

 android:elevation="2dp"

您也可以尝试设置 translationZ 如已接受的 类似问题 的答案中所建议的那样。

我也遇到了 这个答案 作为替代方案。

原文由 Cheticamp 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用海拔是有效的,但它有一些限制,比如它需要 api 级别 21+,而且如果海拔较低(在我的情况下是 2dp),那么在长按时视图变得不可见,因此您可以使用一个技巧,只需 将按钮替换为“视图” 或 “TextView” 你可以用这些视图做所有可以用 buttonView 做的事情

原文由 PRANAV SINGH 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题