我在Main Activity中定义了底部导航栏。我有三个片段与BottomNavigation栏链接。在片段中我有回收器视图,所以我希望在RecyclerView向下滚动时隐藏BottomNavigation栏,在RecyclerView向上滚动时显示。我的问题是如何访问片段中的BottomNavigation栏,因为它是在MainActivity中定义的。
这是我的代码:
活动主文件.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay"
app:elevation="0dp"
android:background="@color/colorPrimary"
android:paddingBottom="7dp"
android:fitsSystemWindows="true">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:layout_scrollFlags="scroll|enterAlways|snap">
<Spinner
android:layout_width="110dp"
android:layout_height="50dp"
android:id="@+id/chooseLocation"
app:backgroundTint="@android:color/white"/>
</android.support.v7.widget.Toolbar>
<EditText
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:id="@+id/search"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:paddingRight="6dp"
android:paddingLeft="12dp"
android:hint="Search here"
android:textColorHint="#9e9e9e"
android:textColor="#000"
tools:ignore="HardcodedText"
android:background="@drawable/search_edit_text"
android:paddingEnd="6dp"
android:paddingStart="12dp"/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<android.support.design.widget.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bottomBar"
android:layout_gravity="bottom"
app:menu="@menu/bottom_menu"
android:background="#fff"
app:itemIconTint="@drawable/nav_check"
app:itemTextColor="@drawable/nav_check"/>
</android.support.design.widget.CoordinatorLayout>
片段_主目录.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Tab1Fragment"
android:background="#fff">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/purchasedBook"/>
</RelativeLayout>
这就是我的片段是如何定义的,因为在任何片段中都没有底部导航栏,所以我如何才能访问片段中的底部导航栏。
有人,请让我知道任何帮助将不胜感激。
"谢谢"
9条答案
按热度按时间m2xkgtsf1#
在主Activity中执行此操作。这里
R.id.full_screen_destination
是导航片段中片段的id。0h4hbjxa2#
若要从片段中访问BottomNavigationView,请使用以下代码:
0s0u357o3#
因为fragment总是在Activity中,所以你可以在fragment中调用
getActivity()
来访问Activity中已经存在的对象。活动
片段
bwntbbo34#
试试这个,
在Xml格式的BottomNavigationView中添加此行
应用程序:layout_behavior="@字符串/滚动时隐藏底部视图行为”
并使用CoOrdinator Layout实现此BottomNavigation行为,您可以使用滚动侦听器隐藏或显示视图。
}
将此行代码添加到包含底部导航Activity中
试试这个,让我知道Digvijay。编码快乐。
zujrkrfu5#
Fragment有
onAttach()
方法,它给予上下文。因此,您必须使用以下方法创建Activity的示例:现在,使用
boolean
参数创建方法,该参数隐藏和显示底部条。现在使用
MainActivity
上下文访问片段中上述方法,方法为:6yoyoihd6#
Kotlin
从片段访问导航视图
qxgroojn7#
我发现在V6中隐藏底部导航器的唯一方法是这样做-
blpfk2vs8#
将此代码添加到您的片段。将隐藏底部导航。
使用此代码:当向下滚动到你的片段时,回收视图将隐藏底部导航。然后当向上滚动时,它将显示底部导航。
tuwxkamq9#
新增
至
底部导航视图
至
循环检视