我认为标题对我的问题非常明确......所以这是我的布局:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/button_action"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login" />
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerInParent="true"/>
</RelativeLayout>
在 android SDKs < 21 上,没问题,ProgressBar 正确显示在 Button 上方并在 Button 中居中。但在 Android 5.0 上,ProgressBar 显示在在按钮之后。
因此,当您在开发人员选项设置中激活“显示布局边界”选项时,您可以看到它已正确定位,但如果没有该选项,您将看不到屏幕上的任何内容。
有人知道如何解决这个问题吗?我猜这是最近引入的海拔问题,但我真的不知道如何处理它。 作为记录,我使用的是 support.v7 中最近发布的 Theme.AppCompat 样式。
编辑:
我还尝试以编程方式将 setElevation(0)
和 setTranslationY(0)
应用于 Button,但它没有改变任何东西。所以我想知道它是否必须处理海拔。
最佳答案
您可以将 android:translationZ
属性添加到 ProgressBar
:
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="50dp"
android:layout_height="50dp"
android:translationZ="2dp"
android:layout_centerInParent="true"/>
关于Android 5.0 - ProgressBar 不能显示在按钮上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26524552/