나는 ProgressBar
위에 a를 추가하려고 합니다 Button
(둘 다 안에 있습니다 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"/>
그러나 심지어 호출 한 후 bringToFront
온 ProgressBar
의 onCreate
뒤에서, 그것은 항상 숙박을 Button
.
ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar);
progressBar.bringToFront();
답변
에 고도를 설정합니다 ProgressBar
. 2dp
작동하는 것 같습니다.
android:elevation="2dp"
유사한 질문translationZ
에 대한 수락 된 답변에서 제안 된대로 설정 을 시도 할 수도 있습니다 .
나는 또한 대안 으로이 대답 을 보았습니다.
답변
이를 제어하려면 android : elevation을 사용해야합니다.
android:elevation="10dp"
이 고도 속성은 API 레벨> = 21에서만 작동합니다.하지만 그 이하에서는 정상적으로 작동합니다. Button 뷰 아래에 Progress를 추가하면 다른 뷰의 맨 아래에있는 뷰가 표시됩니다.
답변
대부분의 경우 아래에 표시되어야하는 뷰 다음에 상단에 원하는 뷰를 정의 할 수 있습니다.
답변
Constraint 레이아웃에서는 다음을 사용해야합니다.
Traslationz
아래에서 원하는보기보다 높습니다.
답변
Android Sutdio 3.5에 대한 업데이트 된 답변 :
업데이트 된 Layout Editor에서 이제 Android Studio 출시 노트에 설명 된대로 앞에 표시 할 뷰를 선택하는 것이 훨씬 쉬워졌습니다.
.. 또한 파란색 오버레이가 이제 제약 조건의 대상을 강조 표시합니다. 이 강조 표시는 다른 구성 요소와 겹치는 구성 요소로 제한하려고 할 때 특히 유용합니다.
https://developer.android.com/studio/releases
더 쉽게, 뷰를 위로 드래그하면 (복사 붙여 넣기 또는 레이아웃 편집기의 컴포넌트 트리에서) 우선 순위가 낮아집니다 (따라서 다른 뷰보다 뒤에있게됩니다).
답변
아래와 같이 래핑 할 수 있습니다. 겹치는 버튼
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
//your all view inside it with button
<Button/>......
.........
</androidx.constraintlayout.widget.ConstraintLayout>
<ProgressBar
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
답변
기본적으로 버튼에는 TranslationZ가 설정되어 있으므로 두 가지 옵션이 있습니다.
1-진행률 표시 줄 TranslationZ를 버튼 고도보다 크게 만듭니다.
ViewCompat.setTranslationZ(progressBar, 5)// to support older api <21
2-버튼 TranslateZ를 0으로 설정하여 뷰가 Constraint Layout에서 순서대로 서로 위에 나타나도록합니다. Style을 button으로 설정하여이 작업을 수행 할 수 있습니다.
style="@style/Widget.AppCompat.Button.Borderless"