J'essaie d'ajouter une ProgressBar
à une Button
(les deux sont à l'intérieur d'une 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"/>
Mais même après avoir appelé bringToFront
sur ProgressBar
dans onCreate
, elle reste toujours derrière la Button
.
ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar);
progressBar.bringToFront();
Définissez une élévation sur ProgressBar
; 2dp
semble fonctionner.
Android:elevation="2dp"
Vous pouvez également essayer de définir translationZ
comme suggéré dans la réponse acceptée à une question similaire .
J'ai aussi rencontré cette réponse comme alternative.
Dans la plupart des cas, vous pouvez simplement définir la vue de votre choix par-dessus celle qui doit apparaître en dessous.
Nous devons utiliser Android: altitude pour contrôler cela.
Android:elevation="10dp"
Cet attribut d'altitude ne fonctionne que dans un niveau d'API> 21. Mais en dessous de cela, il se comportera normalement. Si nous ajoutons Progress sous la vue Bouton, il affiche la vue qui se trouve en bas, en haut de l'autre vue.