我想分享我的经验,但在此之前,我想先发表一下评论。到目前为止,我真的发现这个CoordinatorLayout
有点问题,不值得被放入SDK中。它只是有点问题。当它表现得如此不稳定时,xml布局上的架构并没有太大帮助来弄清楚发生了什么。我虔诚地遵循了示例,但它们都没有起作用。
话虽如此,我正在使用版本为v24.0.2(本文撰写时最新版本)的构建工具,我的情况可能与其他人不同。因此,我将此答案与其他答案一起发布。
在我的情况下,我正在使用这个库来进行导航抽屉。
正如一些答案所指出的那样,这是导航抽屉。我尝试不使用该库仍然存在问题。我将CoordinatorLayout
作为我的两个活动的父布局,并按照库作者的指示以编程方式插入NavigationDrawer
。当聚焦于EditText
时,扩展的Toolbar
大小仍然与屏幕大小相同。因此,在我的情况下,问题并非来自那里。
以下是我在这种情况下所做的:
我从活动的CoordinatorLayout
布局中删除了fitsSystemWindows
。与其他人在这里建议的相反。
我在此处粘贴了整个活动布局:
<?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/coordinatorlayout_homescreen"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.HomeScreenActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingtoolbarlayout_homescreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="64dp"
app:expandedTitleMarginEnd="48dp"
app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_homescreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
android:id="@+id/framelayout_homescreen"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
我在另一个活动中做了这个,它按预期工作。我不再有可扩展的工具栏
了。但是出现了问题。我快要抓狂了。状态栏变成了白色。Phoenix Wang在那篇帖子中的解决方案为我解决了问题,我引用他的答案:
I found the answer in this link:Status Bar Color not changing with
Relative Layout as root element
So it turns out we need remove the
<item name="android:statusBarColor">@android:color/transparent</item> in
styles.xml(v21). And it works just fine for me.
我的唯一担忧是这个解决方案在未来的更新中会如何保持稳定。 CoordinatorLayout
不应该表现出这样的行为。
fitsSystemWindows=true
并在 XML 中将其设置为根视图。这很有帮助。 - Deni Erdyneev