2017-06-04 35 views
14

Button'un üstüne bir ProgressBar eklemeye çalışıyorum (her ikisi de ConstraintLayout içinde).Android ConstraintLayout - Bir görünümü başka bir görünümün üstüne koyun

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

Ama onCreate yılında ProgressBar üzerinde bringToFront çağırdıktan sonra, her zaman Button geride kalır.

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

Bu çok garip, düzeninizle biraz oynamayı denedim, hatta zinciri tersine çevirerek ilerleme çubuğu metnin düzenlenmesine ve düğmenin ilerleme çubuğuna kısıtlı olmasına rağmen düğmenin her zaman en üstte olduğu görünüyor. ilerleme çubuğu – lelloman

+0

Bir FrameLayout'ı kullanabiliyor musunuz? FrameLayout içinde, z-endeksi düzeni içindeki düzen tarafından verildiğini (yani 1. Düğüm, İlerleme 2) –

+0

, app olmadan kontrol ettiğim parolanızda olduğu gibi, şunu deneyin: layout_constraintTop_toBottomOf = "@ + id/passwordEditText" Üstteki ilerleme çubuğunu görebilirim ki bu parolayı sağlayabilirEditText – Pavan

cevap

25

ProgressBar; 2dp işe yarıyor gibi görünüyor.

android:elevation="2dp" 

Ayrıca similar question kabul cevap önerildiği üzere translationZ ayarlamayı deneyebilirsiniz.

Ayrıca alternatif olarak this answer ile karşılaştım.

+3

Ama 'elevasyon' ve' translationZ' yalnızca API için => 21, ne eski API'ler hakkında? – q126y

+0

@ q126y Bunun, API 21'e kadar bir sorun haline geldiğini düşünmüyorum, bu nedenle eski API'ların buna ihtiyacı olmamalıdır. API 17 çalıştıran bir emülatörde denedim ve ilerleme çubuğu beklendiği gibi en üstünde belirdi. – Cheticamp

+0

@Cheticamp Bu nasıl ele alınır? AS bir uyarı veriyor, sadece API seviyesi 21 ve üstü çalışıyor. –