每个活动/片段的操作栏按钮

时间:2015-02-05 07:23:12

标签: android android-activity android-fragments android-actionbar

嘿伙计和老兄,

所以我坐在这里想知道,根据用户当前所处的活动或片段,是否可以在ActionBar上显示和消失按钮?

例如,假设我们有Activity1和Activity2(包括片段X和Y)

Activity1是'主屏幕',只有按钮打开Activity2。 Activity2在被调用时自动从片段X开始,片段X是音乐列表。 Activity2有一个片段Y的附加标签,这是你已加星标/喜欢的音乐列表。

这里变得凌乱。 Activity1的ActionBar只包含AppName和Overflow按钮。片段X的ActionBar包含AppName和Overflow按钮,但现在包含一个搜索功能(搜索可在此片段中看到的完整音乐列表)。片段Y(与X相同的活动,但在不同的标签中)ActionBar包含X的ActionBar所拥有的所有内容,但搜索功能只搜索已加星标/喜爱的音乐(可以在这个碎片屏幕)。

看起来有点复杂,但是我想看看是否有人有办法完成这个没有为每个活动/片段使用不同的样式/主题。

PS:我如何能够为搜索选项添加功能,以便在给出输入时显示结果?

1 个答案:

答案 0 :(得分:0)

我认为在您的情况下最好的选择是将操作栏切换到工具栏。您可以轻松创建几个不同的工具栏,并将其用作actionBar(它们只是添加到任何布局中的视图,但基本上像操作栏一样工作)。它们可通过lib 21+支持获得。 http://developer.android.com/reference/android/support/v7/widget/Toolbar.html

所以基本上你添加以下内容来开始任何布局,并包括你想要的布局(或任何自定义视图)。

<LinearLayout 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:orientation="vertical">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    app:contentInsetStart="0dp">
    <include layout="@layout/toolbar_main_menu" />
</android.support.v7.widget.Toolbar>
...