如何在一个 android studio 项目中为两种不同类型的用户提供两种不同的导航抽屉活动?
Posted
技术标签:
【中文标题】如何在一个 android studio 项目中为两种不同类型的用户提供两种不同的导航抽屉活动?【英文标题】:How to have two different navigation drawer activities in one android studio project for two different types of users? 【发布时间】:2020-01-29 04:34:12 【问题描述】:我有两种类型的用户:Guard 和 Resident。它们都有不同的功能,因此我想要两个导航活动,我可以在登录后根据用户类型进行意图。但是当我尝试创建第二个导航活动时,它会弹出一个错误,因为已经存在同名的文件。我该怎么做?还有其他方法可以实现吗?任何帮助都会很棒。感谢您的宝贵时间 :)
【问题讨论】:
Two Navigation Drawer on same Activity的可能重复 【参考方案1】:在您的 xml 中,您可以使用 FrameLayout 作为容器
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_
android:layout_
android:layout_gravity="start"
android:fitsSystemWindows="true">
<FrameLayout
android:id="@+id/contDrawer"
android:layout_
android:layout_ />
</android.support.design.widget.NavigationView>
现在在您的 Activity 中,您可以将其替换为任何片段
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
【讨论】:
【参考方案2】:最简单的方法是添加 recyleview 并根据用户类型添加所需的项目,这将帮助您拥有多种视图类型,并且将支持许多视图和许多项目,现在诀窍在于视图类型中的适配器,您可以创建通用抽象适配器并添加数据,每个项目肯定是从通用项目扩展的,但类型是不同的,因此它将膨胀一个新的视图持有者,现在精细结果将是一个适配器接受从通用项目类扩展的任何项目如果您需要我的建议,您可以使用下面 mikebinz 库链接中的快速适配器
https://github.com/mikepenz/FastAdapter
或者使用他的侧边菜单更容易使用
https://github.com/mikepenz/MaterialDrawer
【讨论】:
【参考方案3】:您可以添加抽屉布局并创建两个框架布局,一个是重力开始,另一个是重力结束,或者您可以使用这个库非常简单实用,它使用快速适配器 alos
https://github.com/mikepenz/MaterialDrawer
【讨论】:
以上是关于如何在一个 android studio 项目中为两种不同类型的用户提供两种不同的导航抽屉活动?的主要内容,如果未能解决你的问题,请参考以下文章
如何在android studio项目中为类似于flappy bird的简单2D游戏保存高分?
如何使用 C++ 非托管库在 Visual Studio 2017 中为 Xamarin.Forms 设置项目?