CoordinatorLayout(AppbarLayout) 没有正确绘制工具栏
CoordinatorLayout(AppbarLayout) does not draw toolbar properly
我正在使用新的设计支持库来实现滚动隐藏工具栏。
但是,如果我不加载毕加索的图像,一切都会很好。如果我加载图像,有时当我向下滚动让工具栏再次显示时,我的工具栏变成一个空白的白色矩形。请注意,在这种情况下,我仍然可以按导航切换来打开抽屉,尽管它没有在屏幕上绘制(显示):
https://www.dropbox.com/s/nte3pr091nt2wfx/device-2015-05-30-093222.png?dl=0
但有时效果很好:
https://www.dropbox.com/s/i3u87df4x48fhj6/device-2015-05-30-094217.png?dl=0
我对此很困惑,如果我禁用所有加载图像任务,工具栏可以正常显示。
这是我的布局:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
我认为当 picasso 将图像加载到 ImageView 时,它可能 requestFocus 和 requestLayout 以及 CoordinatorLayout 在这种情况下无法正确重绘工具栏,但这只是我的猜测。
任何建议都会有所帮助,非常感谢!
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"/>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
试试这个。我通过这个片段解决了同样的问题。我在工具栏后附加了高度为 1dp 的虚拟视图。
我正在使用新的设计支持库来实现滚动隐藏工具栏。 但是,如果我不加载毕加索的图像,一切都会很好。如果我加载图像,有时当我向下滚动让工具栏再次显示时,我的工具栏变成一个空白的白色矩形。请注意,在这种情况下,我仍然可以按导航切换来打开抽屉,尽管它没有在屏幕上绘制(显示):
https://www.dropbox.com/s/nte3pr091nt2wfx/device-2015-05-30-093222.png?dl=0
但有时效果很好:
https://www.dropbox.com/s/i3u87df4x48fhj6/device-2015-05-30-094217.png?dl=0
我对此很困惑,如果我禁用所有加载图像任务,工具栏可以正常显示。 这是我的布局:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
我认为当 picasso 将图像加载到 ImageView 时,它可能 requestFocus 和 requestLayout 以及 CoordinatorLayout 在这种情况下无法正确重绘工具栏,但这只是我的猜测。
任何建议都会有所帮助,非常感谢!
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"/>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
试试这个。我通过这个片段解决了同样的问题。我在工具栏后附加了高度为 1dp 的虚拟视图。