Android 5.0 - ProgressBar 不能显示在按钮上

标签 android android-button android-progressbar android-5.0-lollipop

我认为标题对我的问题非常明确......所以这是我的布局:

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

相关文章:

android - 如何将我的按钮设置为背景的随机颜色。安卓

java - Android - 添加按钮标题时的随机整数值

android - 立即应用 ui 更改

android - 我将如何在 NavigationDrawer 中创建标签指示器?

Android webview 加载速度太慢

Android - 设置了layout_weight的多行按钮的高度

android - Material 按钮上的圆角

android - 在android中创建类似arc的饼图/进度条

java - 如何在 Android 连接丢失后停止进度条旋转

java - 当我需要一个 String 时,R.string.XXX 从 strings.xml 返回一个 int