如何将操作栏添加到第二个活动但不是第一个活动
问题描述:
我有两个活动,第一个是简单的登录页面,其中禁用了操作栏,因为我不需要它,第二个活动是用户供稿部分,其中我想要添加文本或搜索选项和应用程序抽屉的操作栏也许。如何将操作栏添加到第二个活动,但不是第一个?如何将操作栏添加到第二个活动但不是第一个活动
答
你应该让这样的应用程序主题默认没有操作栏。
<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorPrimary</item>
</style>
在AndroidManifest.xml文件中<application>
标签中加入这一行:
android:theme="@style/AppTheme"
如果你需要一些活动的操作栏只是添加到您的活动布局文件:
<?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"
tools:context="owo.owocar.driver.rides_history_entity.ui.HistorySingleActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:background="@drawable/gradient"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:background="@drawable/gradient"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_history_single" />
</android.support.design.widget.CoordinatorLayout>
答
您可以为第二个活动定义不同的主题。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
</style>
<style name="LoginTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
</style>
答
我会为Apptheme使用NoActionBar风格:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
然后在你想要的操作栏活动的布局,可以将其包含:
<?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="com.xxx.xxx.Activity">
<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/fragment" />
</android.support.design.widget.CoordinatorLayout>
这将产生栏上的活动的顶部,没有任何按钮/文本/菜单。在你的Activity.java里面创建一个工具栏:
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
希望这会有所帮助。