<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/content_tv">
<Button
android:id="@+id/sign_btn"
android:layout_width="180dp"
android:layout_height="60dp"
android:layout_marginStart="8dp"
android:background="@drawable/button_radius_pink"
android:text="Sign in"
style="@style/Pink_button"
android:textAllCaps="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/register_btn"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/register_btn"
android:layout_width="180dp"
android:layout_height="60dp"
android:layout_marginEnd="8dp"
android:background="@drawable/button_radius_gray"
android:text="Register"
android:textColor="#545151"
android:textSize="20sp"
android:textStyle="bold"
android:elevation="8dp"
android:textAllCaps="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/sign_btn" />
</androidx.constraintlayout.widget.ConstraintLayout>
나는 이런식으로 버튼을 디자인했고, Register버튼에 그림자값을 적용해주고싶었다
그래서 elevation값을 적용했는데도 그림자 적용이 안됐다!!ㅜㅜㅜ
찾아보니깐 그림자가 생길공간이 없는 경우에 적용이 안된다고 한다
그림자 생길공간이 없었기 때문에 padding값을 8정도로줘서 공간을 만들어줬다
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:padding="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/content_tv">
<Button
android:id="@+id/sign_btn"
android:layout_width="180dp"
android:layout_height="60dp"
android:layout_marginStart="8dp"
android:background="@drawable/button_radius_pink"
android:text="Sign in"
style="@style/Pink_button"
android:textAllCaps="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/register_btn"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/register_btn"
android:layout_width="180dp"
android:layout_height="60dp"
android:layout_marginEnd="8dp"
android:background="@drawable/button_radius_gray"
android:text="Register"
android:textColor="#545151"
android:textSize="20sp"
android:textStyle="bold"
android:elevation="8dp"
android:textAllCaps="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/sign_btn" />
</androidx.constraintlayout.widget.ConstraintLayout>
근데 이런식으로해도 아직도 안됐다...
부모 컴포넌트의 padding을 적용해줬기때문에 이에 의해서 그림자가 잘리는경우가 발생한다고한다
부모 컴포넌트에 android:clipToPadding="false" 이값을 적용해주면 잘 적용이되는것을 확인할 수 있다
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:padding="8dp"
android:clipToPadding="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/content_tv">
<Button
android:id="@+id/sign_btn"
android:layout_width="180dp"
android:layout_height="60dp"
android:layout_marginStart="8dp"
android:background="@drawable/button_radius_pink"
android:text="Sign in"
style="@style/Pink_button"
android:textAllCaps="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/register_btn"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/register_btn"
android:layout_width="180dp"
android:layout_height="60dp"
android:layout_marginEnd="8dp"
android:background="@drawable/button_radius_gray"
android:text="Register"
android:textColor="#545151"
android:textSize="20sp"
android:textStyle="bold"
android:elevation="8dp"
android:textAllCaps="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/sign_btn" />
</androidx.constraintlayout.widget.ConstraintLayout>
정리해보면 elevation을 적용했는데도 그림자가 적용이 안된다면??
1. 배경색이 있는지 확인!!
2. 그림자가 생길 공간이 있는지 확인!!
3. 부모 컴포넌트의 padding에 의해 그림자가 잘리진 않는지 확인!!
이렇게만 확인해주면 아마 거의 적용이 잘될것이다
'Android > Android 핵심기술' 카테고리의 다른 글
[Android/Kotlin] 코틀린의 ViewBinding과 DataBinding (0) | 2024.03.28 |
---|---|
[Android] 엑티비티 생명주기(Activity Life Cycle) (0) | 2024.03.26 |
[Android/Kotlin] ConstraintLayout - chain, bias (0) | 2024.03.21 |
[Android/Kotlin] registerForActivityResult() 사용법 (0) | 2024.03.21 |
[kotlin] viewpager 스와이프 막기 (0) | 2024.02.26 |