Создание bottomnavigation c другим оформлением
Нужно сделать подобный bottomnavigation. Это невозможно сделать с помощью селектора. Причем он должен быть с радиусом.
Так же пытался сделать через app:itembackground. Это я думаю подходящий вариант, в него можно поставить фон с selector. Но размер не тот

Код самого bottomnavigation
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/nav_menu"
android:layout_width="match_parent"
android:layout_height="83dp"
app:itemBackground="@color/white"
android:background="@drawable/bottomnavigation_bg"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
app:menu="@menu/navigation_menu" />
Код bottomnavigation_bg
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:topLeftRadius="25dp"
android:topRightRadius="25dp"/>
<solid android:color="#4F4F4F"/>
</shape>
Ответы (1 шт):
По логике я думаю должно быть так - вы сетите background для контейнера bottomNavigationView и отдельно для элементов меню. У меня была подобная задача, ниже прикладываю свой код и попутно объясню как оно выглядит. Вот мой bottomNavigation:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation_t"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:itemBackground="@color/bottom_nav_color"
app:itemIconTint="@drawable/selected_text"
app:itemTextColor="@drawable/selected_text"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/main_bottom_nav_menu" />
вот файл selected_text.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white" android:state_checked="true" />
<item android:color="#4D4D4D" />
</selector>
и поведение такое как вам нужно, цвета конечно у меня свои, но я думаю логика будет понятна. Вам, если этот код у вас приживется, нужно будет добавить только фон для контейнера менюшки. Сделать фоновый drawable файл с закругленными углами я думаю не оч сложно. В фон нужно будет добавить радиус для каждого угла:
<corners
android:bottomRightRadius="0.1dp" android:bottomLeftRadius="2dp"
android:topLeftRadius="2dp" android:topRightRadius="0.1dp" />
ну и фон то понятное дело тоже нужен будет) Вот есть видео-урок как сделать фон, вот документация material design
UPDATE
Решил добить ваш вопрос, вот итоговый результат:
вот мой общий фон виджета:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#1bc0a7" />
<corners android:topRightRadius="20dp"
android:topLeftRadius="20dp"/>
</shape>
а селекторы которые выше. Надеюсь у вас получится что-то типа такого тоже :)
