Как создать боковое меню навигации в Android Java? (Не ящик)

#java #android #menu #navigation

Вопрос:

Вот изображение того, как это должно выглядеть и чего я пытаюсь достичь: Скриншот экрана песен приложения

При поиске способа сделать это я нашел множество руководств по ящикам, но это не то, чего я пытаюсь достичь здесь. Как вы можете видеть, это не ящик, но он по — прежнему работает как меню. Я понятия не имею, как заставить это работать, так что это то, чего я достиг до сих пор:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/Basecolor"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">

    <androidx.appcompat.widget.Toolbar
        android:id="@ id/toolbar"
        android:layout_width="match_parent"
        app:title="Hey"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/Basecolor"
        app:titleTextColor="@color/Greytext"
        android:elevation="0dp"/>

    <androidx.appcompat.widget.SearchView
        android:id="@ id/search_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="55dp"
        android:layout_toEndOf="@ id/side_nav_menu" />

    <RadioGroup
        android:id="@ id/side_nav_menu"
        android:layout_width="wrap_content"
        android:layout_height="567dp"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="110dp"
        android:background="@color/White">

        <RadioButton
            android:id="@ id/home_nav_item"
            android:layout_width="match_parent"
            android:layout_height="81dp"
            android:button="@null"
            android:drawableTop="@drawable/ic_home"
            android:paddingLeft="4dp"
            android:paddingTop="16dp"
            android:paddingRight="4dp"
            android:paddingBottom="16dp"
            android:text="Home"
            android:textAlignment="center" />

        <RadioButton
            android:id="@ id/songs_nav_item"
            android:layout_width="match_parent"
            android:layout_height="81dp"
            android:button="@null"
            android:drawableTop="@drawable/ic_music_note"
            android:paddingLeft="4dp"
            android:paddingTop="16dp"
            android:paddingRight="4dp"
            android:paddingBottom="16dp"
            android:text="Songs"
            android:textAlignment="center" />

        <RadioButton
            android:id="@ id/albums_nav_item"
            android:layout_width="match_parent"
            android:layout_height="81dp"
            android:button="@null"
            android:drawableTop="@drawable/ic_album"
            android:paddingLeft="4dp"
            android:paddingTop="16dp"
            android:paddingRight="4dp"
            android:paddingBottom="16dp"
            android:text="Albums"
            android:textAlignment="center" />

        <RadioButton
            android:id="@ id/artists_nav_item"
            android:layout_width="match_parent"
            android:layout_height="81dp"
            android:button="@null"
            android:drawableTop="@drawable/ic_artist"
            android:paddingLeft="4dp"
            android:paddingTop="16dp"
            android:paddingRight="4dp"
            android:paddingBottom="16dp"
            android:text="Artists"
            android:textAlignment="center" />

        <RadioButton
            android:id="@ id/favorites_nav_item"
            android:layout_width="match_parent"
            android:layout_height="81dp"
            android:button="@null"
            android:drawableTop="@drawable/ic_favorite"
            android:paddingLeft="4dp"
            android:paddingTop="16dp"
            android:paddingRight="4dp"
            android:paddingBottom="16dp"
            android:text="Favorites"
            android:textAlignment="center" />

        <RadioButton
            android:id="@ id/folders_nav_item"
            android:layout_width="match_parent"
            android:layout_height="81dp"
            android:button="@null"
            android:drawableTop="@drawable/ic_folder"
            android:paddingLeft="4dp"
            android:paddingTop="16dp"
            android:paddingRight="4dp"
            android:paddingBottom="16dp"
            android:text="Folders"
            android:textAlignment="center" />

        <RadioButton
            android:id="@ id/playlist_nav_item"
            android:layout_width="match_parent"
            android:layout_height="81dp"
            android:button="@null"
            android:drawableTop="@drawable/ic_playlist"
            android:paddingLeft="4dp"
            android:paddingTop="16dp"
            android:paddingRight="4dp"
            android:paddingBottom="16dp"
            android:text="Playlists"
            android:textAlignment="center" />

    </RadioGroup>

</RelativeLayout>
 

Как вы можете видеть, я использовал пару радиокнопок для представления меню, но теперь у меня с этим проблема. Поскольку это не настоящее меню, я не знаю, как сделать так, чтобы они всегда появлялись при переключении с одного пункта меню на другой. Сейчас они отображаются только на экране «Песни», но как только пользователь перейдет на главный экран, щелкнув значок в меню, мне нужно будет переделать все меню в том же месте, чтобы оно отображалось как меню.
Это единственный возможный путь? Кто-нибудь знает библиотеку или лучшее решение для этого?
Любая помощь будет очень признательна

Комментарии:

1. вы можете сделать это вручную, значит, вы можете взять cardView и разместить там все свои меню, а затем настроить clickListeners их.