具有持久性BottomNavigationView的片段或活动

时间:2018-01-27 19:07:32

标签: android android-fragments android-activity bottomnavigationview

我目前正在实施我的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" />

2 个答案:

答案 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