我目前正在实施我的BottomNavigationView,它通过将xml代码添加到不同菜单项的4个活动中的每一个来作为4个菜单项。 4个活动中的每个活动也具有相同的BottomNavigationView。但是,每次我按下bottomNavigationView上的不同按钮时,BottomNavigationView会随着活动的更改而刷新。那么,我应该使用BottomNavigationView的碎片或活动吗?我所参与的4项活动中的每项活动都没有相互关联。
我使用BottomNavigationViewEx库,但这不应该改变任何东西。以下是4个活动之间的通用XML:
<com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx
android:id="@+id/bottom_navigation_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation" />
答案 0 :(得分:3)
如果所有4个屏幕的底部菜单相同,那么是使用片段而不是活动..它将为您提供更大的灵活性和更易于维护
您可以使用ViewPager处理片段或使用FrameLayout处理FragmentTransaction以显示片段。
答案 1 :(得分:1)
我自己已经做了很多研究,试图找到一个好的答案,因为我通常会使用一个活动的片段,但是由于它们的生命周期比较复杂,因此片段可能非常难以使用。活动。因此,必须处理源自片段复杂生命周期的许多问题,这是很常见的。
所以我在想如果你能用底部导航使每个片段成为自己的活动。然后通过使用活动转换使底部导航保持原位,并使底部导航成为活动之间的共享元素,以便页面上的其他所有内容都可以执行您想要的任何自定义动画。下面是文档的一些链接和我发现的示例回购以展示这一点。
https://android.jlelse.eu/android-material-design-activity-transition-55de706ab967 https://developer.android.com/training/material/animations.html https://github.com/ddekanski/BottomNavigationViewBetweenActivities
现在有一件事我不确定这对你是否重要,如果你希望用户能够在应用程序中的页面之间滑动。如果您说是,那么我现在会坚持使用片段并使用ViewPager
来完成此操作。滑动仍然可能只有活动,我还没有探索如何做到这一点,虽然这个链接可能是一个良好的开端。
https://www.bignerdranch.com/blog/viewpager-without-fragments/
如果您确实选择使用片段,这也是一个很棒的教程,涵盖了您可能想要了解的有关底部导航的所有内容。
https://android.jlelse.eu/ultimate-guide-to-bottom-navigation-on-android-75e4efb8105f