2017-06-04 18 views
14

Buttonの上にProgressBarを追加しようとしています(どちらもConstraintLayoutの中にあります)。Android ConstraintLayout - 別のビューの上に1つのビューを表示します。

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

しかし、たとえonCreateProgressBarbringToFrontを呼び出した後、それは常にButtonの後ろにとどまります。

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

これはとても奇妙です。私はあなたのレイアウトを少しでも演奏しようとしました。進捗バーが編集テキストに制約され、ボタンは進行状況バーにボタンが常にボタンの上にあるようにプログレスバー – lelloman

+0

FrameLayoutを使用できますか? FrameLayoutで、レイアウト内の順番でZ-インデックスが与えられていることを知っておいてください。(Button 1st、Progress 2nd) –

+0

ここには、アプリなしでチェックしたときのpasswordEditTextがあります:layout_constraintTop_toBottomOf = "@ + id/passwordEditText"私は上のプログレスバーを見ることができますパスワードを提供することができますEditDext – Pavan

答えて

25

ProgressBarに標高を設定します。 2dpが動作するようです。

android:elevation="2dp" 

またsimilar questionに受け入れ答えで提案されているようtranslationZを設定してみてください可能性があります。

私はまたthis answerに遭遇しました。

+3

'elevation'と' translationZ'はAPI> = 21のみです。古いAPIはどうですか? – q126y

+0

@ q126yこれはAPI 21までは問題にはならなかったと思いますので、古いAPIではこれが必要ないはずです。私はAPI 17を実行しているエミュレータでそれを試して、プログレスバーは期待通りに上に現れました。 – Cheticamp

+0

@Cheticampだからこれをどうやって処理するのですか? ASはAPIレベル21以上でのみ動作するという警告を出しています。 –

関連する問題