여러 블로그에서 위에 문제에 대한 해결 방법으로 minHeight와 minWidth를 0dp 로 설정하라는 해결법을 알려주고 있다
하지만 나는 그 방법으로 해결을 하지 못해 다른 방법을 찾아보았고,
insetTop 과 insetBottom 값을 0에 로 설정해서 해결하였다.
이를 모든 버튼마다 다 설정해주기엔 번거로운 관계로 아래와 같이 스타일 속성을 정의한 후에 이를 버튼에 적용시키는 방법으로 구현하고 있다.
<style name="ShapeAppearance.LargeComponent" parent="ShapeAppearance.MaterialComponents.LargeComponent">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">25%</item>
</style>
<style name="Widget.Eggeum.Button" parent="Widget.MaterialComponents.Button">
<item name="shapeAppearance">@style/ShapeAppearance.LargeComponent</item>
<item name="backgroundTint">@color/selector_button</item>
<item name="android:insetBottom">0dp</item>
<item name="android:insetTop">0dp</item>
<item name="android:textColor">@color/white</item>
<item name="android:textSize">16dp</item>
<item name="android:layout_height">52dp</item>
<item name="android:stateListAnimator">@null</item>
<item name="android:fontFamily">@font/pretendard_medium</item>
</style>
추가적으로 stateListAnimator 를 null 로 설정하는 옵션은 버튼의 그림자를 지우기 위함이다