Как сделать закругленным BottomAppBar
У меня есть BottomAppBar
Мне надо его сделать закругленным как на этой фотке
Пытался сделать стандартом через android:background="@drawable" и в @drawable файле закруглить, но безуспешно.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/navigationBottom"
android:layout_margin="15.5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:hideOnScroll="true">
</com.google.android.material.bottomappbar.BottomAppBar>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_anchor="@id/navigationBottom" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Вот откуда эта картинка. В этом источнике указывается что нужно создать drawable файл:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#F5F5FF" />
<corners android:radius="17dp" />
</shape>
ну и подключить:
android:background="@drawable/bottom_navigation_background"
UPDATE
Можно попробовать в xml фона поместить:
<corners
android:topLeftRadius="16dp"
android:topRightRadius="16dp" />
но для всех углов. Второй вариант, через код активности:
float radius = getResources().getDimension(R.dimen.default_corner_radius);
BottomAppBar bottomAppBar = findViewById(R.id.bottom_app_bar);
ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
.toBuilder()
.setTopRightCorner(CornerFamily.ROUNDED,radius)
.setTopLeftCorner(CornerFamily.ROUNDED,radius)
.build();
ViewCompat.setBackground(bottomAppBar,new MaterialShapeDrawable(shapeAppearanceModel));

