【发布时间】:2020-01-29 04:34:12
【问题描述】:
我有两种类型的用户:Guard 和 Resident。它们都有不同的功能,因此我想要两个导航活动,我可以在登录后根据用户类型进行意图。但是当我尝试创建第二个导航活动时,它会弹出一个错误,因为已经存在同名的文件。我该怎么做?
还有其他方法可以实现吗?任何帮助都会很棒。
感谢您的宝贵时间 :)
【问题讨论】:
标签: android android-studio navigation navigation-drawer
我有两种类型的用户:Guard 和 Resident。它们都有不同的功能,因此我想要两个导航活动,我可以在登录后根据用户类型进行意图。但是当我尝试创建第二个导航活动时,它会弹出一个错误,因为已经存在同名的文件。我该怎么做?
还有其他方法可以实现吗?任何帮助都会很棒。
感谢您的宝贵时间 :)
【问题讨论】:
标签: android android-studio navigation navigation-drawer
在您的 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>
现在在您的 Activity 中,您可以将其替换为任何片段
getSupportFragmentManager().beginTransaction().replace(R.id.contDrawer, SideBarCustomerFragment.newInstance()).commit();
现在对于两个用户,您可以创建 2 个不同的片段,您可以查看我的样板代码以供参考
【讨论】:
最简单的方法是添加 recyleview 并根据用户类型添加所需的项目,这将帮助您拥有多种视图类型,并且将支持许多视图和许多项目,现在诀窍在于视图类型中的适配器,您可以创建通用抽象适配器并添加数据,每个项目肯定是从通用项目扩展的,但类型是不同的,因此它将膨胀一个新的视图持有者,现在精细结果将是一个适配器接受从通用项目类扩展的任何项目如果您需要我的建议,您可以使用下面 mikebinz 库链接中的快速适配器
https://github.com/mikepenz/FastAdapter
或者使用他的侧边菜单更容易使用
【讨论】:
您可以添加抽屉布局并创建两个框架布局,一个是重力开始,另一个是重力结束,或者您可以使用这个库非常简单实用,它使用快速适配器 alos
【讨论】: