Android CoordinatorLayout 显示重复的应用栏
Android CoordinatorLayout shows duplicated App Bar
基本上我用 CoordinatorLayout 创建了一个 Activity,一切似乎都正常。但是有 2 个 AppBar。一个是空的(没有文本),显示在 activity 的顶部。而另一个在协调器布局上表现得很好:最初只是文本,没有背景;当你向上滑动时,它会移动到屏幕顶部,并获得背景(如果这听起来令人困惑,请看一下动画 here.
这是它的外观截图:
我尝试使用:
requestWindowFeature(Window.FEATURE_NO_TITLE);
和
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
但似乎对布局没有任何影响。
这是我的活动XML:
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="aris.projectaris.InfoPreviewActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_info_preview" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
看起来默认 ActionBar
仍然存在,即使您添加了 Toolbar
。确保设置以下主题之一
android:theme="@style/Theme.AppCompat.NoActionBar"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"
在 <application>
或 AndroidManifest.xml
中的适当 <activity>
标签中。
编辑:
如果您使用这些主题之一,则必须在 Activity 的 onCreate
方法中将工具栏设置为应用栏:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar t = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(t);
}
基本上我用 CoordinatorLayout 创建了一个 Activity,一切似乎都正常。但是有 2 个 AppBar。一个是空的(没有文本),显示在 activity 的顶部。而另一个在协调器布局上表现得很好:最初只是文本,没有背景;当你向上滑动时,它会移动到屏幕顶部,并获得背景(如果这听起来令人困惑,请看一下动画 here.
这是它的外观截图:
我尝试使用:
requestWindowFeature(Window.FEATURE_NO_TITLE);
和
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
但似乎对布局没有任何影响。
这是我的活动XML:
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="aris.projectaris.InfoPreviewActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_info_preview" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
看起来默认 ActionBar
仍然存在,即使您添加了 Toolbar
。确保设置以下主题之一
android:theme="@style/Theme.AppCompat.NoActionBar"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"
在 <application>
或 AndroidManifest.xml
中的适当 <activity>
标签中。
编辑:
如果您使用这些主题之一,则必须在 Activity 的 onCreate
方法中将工具栏设置为应用栏:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar t = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(t);
}