我正在尝试在RecyclerView滚动时隐藏我的工具栏,到目前为止,它似乎已经隐藏了,但是它留下了一个白色的空白。我很确定这与我的MainActivity布局和FrameLayout中的片段叠加有关。
以下是我的activity_main.xml。我需要FrameLayout,因为我加载不同的片段并选择导航抽屉中的项目。
最后,
这是对我的另一篇文章的跟进,链接在这里。不过我想问一个新问题,因为这次我尝试了不同的方法(不需要阅读整篇文章,只需看底部的编辑部分)。这是他的MainActivity以及实际的滚动监听代码。
如果这似乎像是我在说“这是我的问题,你去解决吧”,那我道歉了。但我已经花了将近两个小时寻找可能的解决方案。如常,非常感谢您的帮助。
以下是我的activity_main.xml。我需要FrameLayout,因为我加载不同的片段并选择导航抽屉中的项目。
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="7dp"
tools:context=".MainActivity"
android:fitsSystemWindows="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/toolbar" />
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF" />
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/header"
app:menu="@menu/drawer" />
</android.support.v4.widget.DrawerLayout>
以下是包含 RecyclerView 的代码片段。
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_main, container, false);
getActivity().setTitle("Unit One");
rv = (RecyclerView) v.findViewById(R.id.rv);
rv.setHasFixedSize(true);
llm = new LinearLayoutManager(getActivity());
rv.setLayoutManager(llm);
initializeData();
initializeAdapter();
rv.addOnScrollListener(showHideToolbarListener = new RecyclerViewUtils.ShowHideToolbarOnScrollingListener(MainActivity.toolbar));
if (savedInstanceState != null) {
showHideToolbarListener.onRestoreInstanceState((RecyclerViewUtils.ShowHideToolbarOnScrollingListener.State) savedInstanceState
.getParcelable(RecyclerViewUtils.ShowHideToolbarOnScrollingListener.SHOW_HIDE_TOOLBAR_LISTENER_STATE));
}
return v;
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putParcelable(RecyclerViewUtils.ShowHideToolbarOnScrollingListener.SHOW_HIDE_TOOLBAR_LISTENER_STATE,
showHideToolbarListener.onSaveInstanceState());
super.onSaveInstanceState(outState);
}
最后,
fragment_main.xml
中的 RecyclerView 布局: <android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:orientation="vertical"
android:scrollbars="vertical"
android:id="@+id/rv" />
这是对我的另一篇文章的跟进,链接在这里。不过我想问一个新问题,因为这次我尝试了不同的方法(不需要阅读整篇文章,只需看底部的编辑部分)。这是他的MainActivity以及实际的滚动监听代码。
如果这似乎像是我在说“这是我的问题,你去解决吧”,那我道歉了。但我已经花了将近两个小时寻找可能的解决方案。如常,非常感谢您的帮助。