我使用CoordinatorLayout和CollapsingToolbarLayout, 我不知道是什么导致了这个错误, 这是我的xml文件
活动的main.xml
<?xml version="1.0" encoding="utf-8"?>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include layout="@layout/toolbar" />
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
工具栏视图的toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="@color/actionbar"
app:expandedTitleTextAppearance="@style/actinbar.textview.big"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:statusBarScrim="@color/actionbar"
app:titleEnabled="false">
<ImageView
android:id="@+id/toolbarbg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
android:src="@drawable/bg_ovenui_pic_"
android:visibility="gone"
app:layout_collapseMode="parallax" />
<RelativeLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_gravity="bottom"
android:visibility="gone"></RelativeLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
style="@style/ToolBarStyle"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
答案 0 :(得分:7)
从AppBarLayout中移除android:fitsSystemWindows =“true”,你很高兴。 启用后,AppBarLayout会假定状态栏不可用,并且必须占用整个房地产。
答案 1 :(得分:0)
只需在下面的LinearLayout中插入工具栏布局和框架布局。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include layout="@layout/toolbar"/>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>
这可能会对你有所帮助。
答案 2 :(得分:0)
当我想在CollapsingToolbarLayout中加载ImageView时遇到了同样的问题,经过一些研究我发现了如下解决方案:
<?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:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:windowDrawsSystemBarBackgrounds="true"
tools:context="com.example.k1.DetailActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/detail_app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:collapsedTitleTextAppearance="@android:style/TextAppearance.Material.Small"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleTextAppearance="@android:color/transparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
tools:targetApi="lollipop">
<ImageView
android:id="@+id/detail_sliding_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill|center"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax" />
<android.support.v7.widget.Toolbar
android:id="@+id/detail_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:minHeight="?attr/actionBarSize"
app:contentScrim="?attr/colorPrimary"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:statusBarScrim="?attr/colorAccent" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
注意:在您查看android:layout_height="@dimen/app_bar_height"
时,xxhdpi通过300dp在尺寸资源值中将AppBarLayout高度值设置为<dimen name="app_bar_height">300dp</dimen>
。
我希望这会对你有所帮助。
答案 3 :(得分:0)
只需删除 android:fitsSystemWindows =“ true” 因为当它为true时,它将调整AppbarLayout的填充以为状态栏留出空间。