2017-06-04 183 views
14

我试图在Button(均位于ConstraintLayout内)添加ProgressBarAndroid 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"/> 

但即使在onCreate呼吁ProgressBarbringToFront后,它总是停留在Button后面。

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

这太奇怪了,我试着玩一下你的布局,甚至反转链,使进度条是约束编辑文本和进度条的按钮,但按钮似乎总是在进度条 – lelloman

+0

你能够使用FrameLayout吗?试一试,知道在FrameLayout中,z-index是由布局内部的顺序给出的(因此Button 1st,Progress 2nd) –

+0

其中是您的passwordEditText,因为我没有查看应用程序:layout_constraintTop_toBottomOf =“@ + id/passwordEditText”我可以在顶部看到进度条,你可以提供密码编辑文本 – Pavan

回答

25

设置海拔ProgressBar; 2dp似乎工作。

android:elevation="2dp" 

你也可以尝试设置translationZ在接受答案的similar question建议。

我也遇到了this answer作为替代。

+3

但是'elevation'和'translationZ'只适用于API> = 21,那么旧版API呢? – q126y

+0

@ q126y我不认为这直到API 21成为一个问题,所以旧的API不应该需要这个。我已经在运行API 17的模拟器上尝试过了,并且进度条出现在预期的顶部。 – Cheticamp

+0

@Cheticamp如何处理这个? AS正在给出一个警告,它只适用于API级别21以上。 –

相关问题