#android #xml #android-studio #android-layout #android-bottomnavigationview
#Android #xml #android-studio #android-макет #android-bottomnavigationview
Вопрос:
Мне интересно, как добавить кнопку в BottomNavigationView, я включаю ее в BottomNavigationView. Но это был обходной путь. Я хочу знать, как это сделать правильно?
Я хочу добавить кнопку в середине BottomNavigationView, если кто-то знает, как, помимо того, как я это сделал, потому что каждый раз, когда я меняю пункт меню, кнопка мигает
xml (меню):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@ id/app_home"
android:enabled="true"
android:icon="@drawable/home"
android:title="@string/home"/>
<item
android:id="@ id/app_calendar"
android:enabled="true"
android:icon="@drawable/calendar"
android:title="@string/calendar"
/>
<item
android:id="@ id/app_add"
android:enabled="true"
app:showAsAction="collapseActionView"
android:icon="@drawable/badd"
tools:ignore="MenuTitle" />
<item
android:id="@ id/app_graphics"
android:icon="@drawable/graphics"
android:enabled="true"
android:title="@string/graphics"
/>
<item
android:id="@ id/app_engine"
android:enabled="true"
android:icon="@drawable/engine"
android:title="@string/home"
/>
</menu>
Обходной путь
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@ id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemIconTint="@color/bnv_tab_item_foreground"
app:itemTextColor="@color/bnv_tab_item_foreground"
android:background="@color/colorFooter"
app:layout_constraintBottom_toBottomOf="parent"
app:menu="@menu/bottom_navigation_menu"
tools:ignore="MissingConstraints" >
<com.google.android.material.button.MaterialButton
android:id="@ id/btnAdc"
android:layout_width="76dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@menu/buttonadd"
android:gravity="center"
android:text="@string/add_btn"
android:textSize="25sp"
/>
</com.google.android.material.bottomnavigation.BottomNavigationView>
Ответ №1:
Я использовал ImageView, который вы можете изменить на button в соответствии с вашими требованиями
<?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:layout_gravity="bottom"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@ id/imageView"
android:layout_width="60dp"
android:layout_height="60dp"
android:elevation="2dp"
android:src="@drawable/ic_usernew"
app:layout_constraintBottom_toBottomOf="@ id/bot_nav_view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@ id/bot_nav_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="@color/white"
app:elevation="0dp"
app:itemIconSize="20dp"
app:itemTextAppearanceActive="@style/BottomNavigationView.Active"
app:itemTextAppearanceInactive="@style/BottomNavigationView"
app:itemTextColor="@drawable/tab_icon_selector"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
и в bottom_nav_menu вы можете написать так
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@ id/nav_dashboard"
android:icon="@drawable/ic_home"
android:title="Home" />
<item
android:id="@ id/nav_team"
android:icon="@drawable/ic_affiliate"
android:title="Affiliate" />
<item
android:id="@ id/nav_main"
android:title="" />
<item
android:id="@ id/nav_wallet"
android:icon="@drawable/ic_user_myaccoun"
android:title="My Account" />
<item
android:id="@ id/nav_more"
android:icon="@drawable/ic_more"
android:title="More" />
</menu>
Надеюсь, это ответ на ваш вопрос.