Как сделать два разных действия с навигационным блоком в одном проекте студии Android для двух разных типов пользователей? - PullRequest
1 голос
/ 29 сентября 2019

У меня есть два типа пользователей: Guard и Resident. Оба они имеют разные функциональные возможности, и поэтому мне нужны два вида навигации, которые я могу назначить после входа в систему в зависимости от типа пользователя. Но когда я пытаюсь создать второе навигационное действие, появляется сообщение об ошибке, потому что файлы с такими же именами уже существуют. Как я могу это сделать?
Есть ли другой способ добиться этого? Любая помощь будет замечательной.
Спасибо за ваше время:)

Ответы [ 2 ]

1 голос
/ 29 сентября 2019

Самый простой способ - добавить recyleview и добавить элементы, которые вы хотите, в зависимости от типа пользователя, это поможет вам иметь несколько типов представлений и будет поддерживать во многих представлениях и многих элементах теперь хитрость в типах представлений вАдаптер. Вы можете создать универсальный абстрактный адаптер и добавлять данные, каждый элемент которых обязательно расширен из элемента generec, но тип является разным, поэтому он будет раздувать нового держателя представления, теперь в результате будет получен адаптер, принимающий любой элемент, расширенный из класса универсального элемента. если вы хотите мой совет, вы можете просто использовать быстрый адаптер из ссылки библиотеки mikebinz ниже

https://github.com/mikepenz/FastAdapter

или использовать боковое меню, он более прост в использовании

https://github.com/mikepenz/MaterialDrawer

1 голос
/ 29 сентября 2019

В вашем xml вы можете использовать FrameLayout в качестве контейнера

   <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true">

        <FrameLayout
            android:id="@+id/contDrawer"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </android.support.design.widget.NavigationView>

Теперь в своей деятельности вы можете заменить его любым фрагментом

   getSupportFragmentManager().beginTransaction().replace(R.id.contDrawer, SideBarCustomerFragment.newInstance()).commit();

Теперь для двух пользователей,Вы можете создать 2 разных фрагмента, Вы можете проверить мой шаблонный код для справки

https://github.com/hamzaahmedkhan/AndroidStructure/blob/master/app/src/main/java/com/android/structure/activities/HomeActivity.java

https://github.com/hamzaahmedkhan/AndroidStructure/blob/master/app/src/main/java/com/android/structure/activities/BaseActivity.java

...