Saya mencoba menambahkan ProgressBar
di atas a Button
(keduanya ada di dalam a 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"/>
Tetapi bahkan setelah menelepon bringToFront
di ProgressBar
dalam onCreate
, selalu tetap di belakang Button
.
ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar);
progressBar.bringToFront();
android
android-layout
android-constraintlayout
Adam Johns
sumber
sumber
Jawaban:
Tetapkan ketinggian di
ProgressBar
;2dp
sepertinya berhasil.Anda juga dapat mencoba mengatur
translationZ
seperti yang disarankan dalam jawaban yang diterima untuk pertanyaan serupa .Saya juga menemukan jawaban ini sebagai alternatif.
sumber
elevation
dantranslationZ
hanya untuk API> = 21, bagaimana dengan API yang lebih lama?ViewCompat.setTranslationZ(view, 5)
ViewCompat.setElavation(view, 20f)
membantu AndaKita perlu menggunakan android: elevasi untuk mengontrolnya.
Atribut elevasi ini hanya bekerja di API level> = 21. Tapi di bawahnya itu akan berperilaku normal. Jika kita menambahkan Kemajuan di bawah tampilan Tombol, itu menunjukkan tampilan yang ada di bawah di bagian atas tampilan lain.
sumber
Dalam kebanyakan kasus, Anda cukup menentukan tampilan yang Anda inginkan di atas setelah yang akan muncul di bawahnya.
sumber
ProgressBar
tidak di atasButton
meskipunProgressBar
ditentukan setelahButton
dalam pertanyaan.Dalam tata letak Batasan, Anda harus menggunakan
traslationz
lebih tinggi dari tampilan yang Anda inginkan di bawah.
sumber
Jawaban terbaru untuk Android Sutdio 3.5:
Di Layout Editor yang diperbarui, sekarang lebih mudah untuk memilih Tampilan mana yang akan ditampilkan di depan seperti yang ditunjukkan dalam catatan rilis Android Studio
https://developer.android.com/studio/releases
Lebih mudah lagi, Jika Anda menyeret View ke atas (salin tempel atau dari Component Tree di editor tata letak) itu akan mendapatkan prioritas yang lebih rendah (jadi itu akan berada di belakang tampilan lain)
sumber
Anda dapat membungkusnya seperti di bawah ini Gunakan framelayout sebagai induk dan letakkan bilah porogress di luar tata letak batasan. Tombol ini akan tumpang tindih
sumber
Tombol secara default memiliki set TranslationZ, jadi Anda memiliki dua opsi
1 - buat bilah kemajuan TranslationZ lebih besar dari ketinggian tombol
2 - buat tombol TranslateZ ke 0 sehingga tampilan Muncul di atas satu sama lain dalam urutan Constraint Layout Anda, Anda dapat mencapai ini dengan Mengatur Gaya ke tombol
sumber
Meskipun
android:elevation="4dp"
atautraslationz
akan berfungsi, tetapi untuk level API tersebut setidaknya harus 21. Jika karena alasan tertentu Anda tidak dapat melakukannya, pastikan tampilan yang Anda inginkan di atas disebutkan setelah tampilan lain. Misalnya, jika saya ingin progressBar di atas ImageView:sumber