Когда я использовал AppCompat, эта штука работала нормально, но когда я перешел на MaterialComponents, она выглядит плохо.
См. Текущее изображение:
См. ' W ', он не отображается должным образом. для ' H ' Также та же проблема.
Примечание: я пытался использовать Button, AndroidXbutton и MaterialButton, в случае MateriaComponents ничего не работает.
Код:
<androidx.cardview.widget.CardView
android:id="@+id/circle_card_payment"
android:layout_width="40dp"
android:layout_height="40dp"
android:elevation="12dp"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9"
app:cardCornerRadius="20dp">
<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:visibility="gone"></ImageView>
<com.google.android.material.button.MaterialButton
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="A"
android:textColor="@color/colorWhite"
android:textSize="16sp"
android:visibility="gone"></com.google.android.material.button.MaterialButton>
</androidx.cardview.widget.CardView>
Я устанавливаю программно нарисованный фон, потому что в компонентах материала он не оказывает влияния на XML.
logo.setBackgroundResource(R.drawable.bg_circle_btn);
bg_circle_btn.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="?attr/toolbar_color" />
<size
android:width="120dp"
android:height="120dp" />
</shape>
Обратите внимание, что если я изменю размер карты 40dp на 50dp, эта проблема решится, но размер будет больше, что выглядит плохо.
Полный XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/cardbackgroundColor"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<androidx.cardview.widget.CardView
android:id="@+id/circle_card_payment"
android:layout_width="40dp"
android:layout_height="40dp"
android:elevation="12dp"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9"
app:cardCornerRadius="20dp">
<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:visibility="gone"></ImageView>
<com.google.android.material.button.MaterialButton
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="A"
android:textColor="@color/colorWhite"
android:textSize="16sp"
android:visibility="gone"></com.google.android.material.button.MaterialButton>
</androidx.cardview.widget.CardView>
<TextView
android:id="@+id/tv_category_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:layout_toLeftOf="@+id/next"
android:layout_toRightOf="@+id/circle_card_payment"
android:text="Category"
android:textColor="?attr/day_colorDarkGray_night_colorWhite"
android:textSize="16sp" />
<ImageView
android:id="@+id/next"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:padding="6dp"
android:tint="@color/colorVeryLightGray"
android:visibility="visible"
app:srcCompat="@drawable/ic_navigate_next_black_24dp" />
<ImageView
android:id="@+id/hamburger_menu"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/next"
android:padding="6dp"
android:tint="?attr/day_colorBlack_night_colorWhite"
android:visibility="gone"
app:srcCompat="@drawable/ic_more_vert_black_24dp" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginLeft="70dp"
android:background="@color/colorVeryLightGray" />
</LinearLayout>