2017-06-04 215 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以上。 –

相關問題