룬아님의 취중코딩

material 1.0.0 에서 1.1.0 올릴 때 SnackBar의 변경점 본문

개발/안드로이드 개발

material 1.0.0 에서 1.1.0 올릴 때 SnackBar의 변경점

룬아님 2020. 3. 17. 17:55

2020/03/13 - [개발/안드로이드 개발] - material 1.0.0 에서 1.1.0 올릴 때 Chip의 변경점

 

material 1.0.0 에서 1.1.0 올릴 때 Chip의 변경점

https://github.com/material-components/material-components-android/releases?after=1.1.0-beta01 material-components/material-components-android Modular and customizable Material Design UI components..

myung6024.tistory.com

 

SnackBar도 1.0.0에서 1.1.0으로 변화하면서 디자인과 관련된 변화가 있었다.

1.0.0에서는 기본적으로 하단에서 꽉차게 나오는 디자인이였다.

 

1.1.0에서는 기본 디자인으로 8dp의 margin과 8dp의 radius 그리고 elevation이 생겼다.

 

margin 변경 방법

<style name="MainTheme" parent="Theme.MaterialComponents.Light.Bridge">
    <item name="snackbarStyle">@style/Snackbar.Margin.8dp</item>
</style>

<style name="Snackbar.Margin.8dp" parent="@style/Widget.MaterialComponents.Snackbar">
    <item name="android:layout_margin">8dp</item>
</style>

theme를 이용해서 변경이 가능하다.

 

Radius 변경 방법

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/btn_black_normal" />
    <corners android:radius="12dp" />
</shape>
<style name="MainTheme" parent="Theme.MaterialComponents.Light.Bridge">
    <item name="snackbarStyle">@style/Snackbar.Margin.8dp</item>
</style>

<style name="Snackbar.Margin.8dp" parent="@style/Widget.MaterialComponents.Snackbar">
    <item name="android:background">@drawable/bg_snackbar</item>
</style>

background를 변경하여 바꿀 수 있다.

 

또한 이전에 SnackBar Text 색상을 바꾸기 위해서는

View snackView = snackbar.getView();
TextView tv = snackView.findViewById(com.google.android.material.R.id.snackbar_text);
tv.setTextColor(Color.WHITE);

이런식으로 불편하게 변경해야 했지만

snackbar.setTextColor(Color.WHITE);

이제는 setTextColor를 통해 쉽게 바꿀 수 있다.

반응형
Comments