如何将操作栏添加到第二个活动但不添加到第一个活动

时间:2016-09-18 17:35:49

标签: java android android-studio-2.0

我有两个活动,第一个是简单的登录页面,其中我禁用了操作栏,因为我不需要它,第二个活动是用户提要部分,我想在其中添加带有文本或搜索选项的操作栏, app抽屉可能。如何将操作栏添加到第二个活动但不是第一个?

4 个答案:

答案 0 :(得分:0)

您可以为第二个活动定义不同的主题。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ...
</style>

<style name="LoginTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
</style>

答案 1 :(得分:0)

默认情况下,你应该让这样的app主题没有动作栏。

 <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>

答案 2 :(得分:0)

我会在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);

希望这有帮助。

答案 3 :(得分:0)

您现在可以简单地使用 Toolbar

<android.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:title="Hello World"
    android:elevation="4dp"
    android:id="@+id/my_toolbar"
    />

然后将其设置为 Activity.java 文件中的操作栏

Toolbar myToolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
     ...
     myToolbar = findViewById(R.id.my_toolbar);
     setActionBar(myToolbar);
}

请注意,上面示例中使用的 Toolbarandroid.widget.Toolbar 而不是 androidx.appcompat.widget.Toolbar