问题描述
包含在我的activity_main.xml 的DrawerLayout
中的是一个名为content_layout.xml 的CoordinatorLayout
.在这个 CoordinatorLayout
中是我的 AppBarLayout
包含一个 Toolbar
,然后是一个片段内容的 LinearLayout
.
Included in my activity_main.xml's DrawerLayout
is a CoordinatorLayout
called content_layout.xml. Within this CoordinatorLayout
is my AppBarLayout
containing a Toolbar
, then a LinearLayout
for a fragment's content.
当包含RecyclerView
的片段向上滚动时,工具栏成功退出.问题在于向下滚动以恢复工具栏时.工具栏直到工具栏的整个高度都滚动后才会出现,因此会在其位置留下一个难看的白色框,如图所示.
When a fragment containing a RecyclerView
is scrolled up, the toolbar exits successfully. The problem lies when scrolling down to bring the toolbar back. The toolbar does not appear until the full height of the toolbar has been scrolled and as such leaves an unsightly white box in its place as shown.
content_layout.xml
<android.support.design.widget.CoordinatorLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.AppBarLayout>
<!-- The main content view for fragments-->
<LinearLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
工具栏通过MainActivity
的onCreate()
初始化:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
对于解决此问题的任何建议,我将不胜感激.谢谢.
I would appreciate any suggestions as to resolving this. Thank you.
推荐答案
我遇到了同样的问题,我发现解决它的唯一方法是在AppBarLayout
.我在工具栏下方的布局中放置了一个不可见的视图.不是最理想的解决方案,但它奏效了.
I was having this same issue and the only thing I found that solved it was by having something else other than the toolbar
inside the AppBarLayout
. I placed an invisible view in my layout underneath the toolbar. Not the most ideal solution, but it worked.
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<View
android:id="@+id/appbar_bottom"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/transparent"
android:visibility="invisible"/>
</android.support.design.widget.AppBarLayout>
这篇关于CoordinatorLayout 工具栏在输入时不可见,直到全高的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!