顶部的静态工具栏图标

时间:2015-01-26 23:42:29

标签: android material-design android-toolbar

我正在开发一款Android-L-test-app,其中包含材料设计指南的一些功能。我试图实现一个工具栏,其中图标静态在顶部。

这是在谷歌IO 2014应用程序中完成的,我想复制它。我一直在查看代码(https://github.com/google/iosched),但我无法弄清楚他们是如何做到的。

这是一个可视化问题的屏幕截图: http://imgur.com/Wa7wi88

左侧:我的实际情况的截图(标题中的菜单图标很难并且滚动这些图标) 右侧:这就是我想要的("静态"屏幕顶部的图标"):

有什么想法吗?

layout.xml:               

        <include layout="@layout/toolbar_actionbar" />

        <!-- Session title -->
        <TextView android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:layout_marginBottom="0dp"
            android:layout_marginLeft="@dimen/keyline_2_session_detail"
            android:layout_marginRight="@dimen/keyline_1"
            android:text="@string/placeholder_session_title"
            android:id="@+id/session_title"
            android:maxLines="4"
            android:ellipsize="end"
            android:textSize="@dimen/text_size_large"
            android:lineSpacingMultiplier="1.1"
            android:textStyle="@integer/font_textStyle_medium"
            android:fontFamily="@string/font_fontFamily_medium"
            android:textColor="@color/body_text_1_inverse" />
        <!--android:textAlignment="viewStart" -->


        <!-- Session subtitle -->
        <TextView android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:layout_marginLeft="@dimen/keyline_2_session_detail"
            android:layout_marginRight="@dimen/keyline_1"
            android:text="@string/placeholder_session_subtitle"
            android:id="@+id/session_subtitle"
            android:maxLines="2"
            android:ellipsize="end"
            android:textSize="16sp"
            android:textColor="@color/body_text_2_inverse" />
            <!--android:textAlignment="viewStart" -->

    </LinearLayout>

layout toolbar_actionbar.xml

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:iosched="http://schemas.android.com/apk/res-auto"
    iosched:theme="@style/ActionBarThemeOverlay"
    iosched:popupTheme="@style/ActionBarPopupThemeOverlay"
    android:id="@+id/toolbar_actionbar"
    android:background="@null"
    iosched:titleTextAppearance="@style/ActionBar.TitleText"
    iosched:contentInsetStart="0dp"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
/>

menu.xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:iosched="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/menu_map_room"
    android:icon="@drawable/ic_action_map"
    android:title="@string/description_map"
    android:orderInCategory="1"
    iosched:showAsAction="ifRoom" />
<item android:id="@+id/menu_share"
    android:icon="@drawable/ic_action_share"
    android:title="@string/description_share"
    android:orderInCategory="1"
    iosched:showAsAction="ifRoom" />
<item android:id="@+id/menu_social_stream"
    android:icon="@drawable/ic_action_social_stream"
    android:title="@string/description_social_stream"
    android:orderInCategory="1"
    android:visible="true"
    iosched:showAsAction="ifRoom" />

1 个答案:

答案 0 :(得分:0)

您可以将主要内容添加到滚动视图和工具栏中。然后在滚动时应使用淡化效果。

  1. RelativeLayout to all screen
  2. RelativeLayout中的工具栏对齐父级,透明。
  3. 将RelativeLayout内的ScrollView导入所有屏幕。
  4. 当您向下滚动X时,工具栏从透明到主题颜色与您的scrollView相反,反之亦然。
  5. 您可以在java中获取colorPrimary或​​colorPrimaryDark:

                TypedValue typedValue = new TypedValue();
                MainActivity.this.getTheme().resolveAttribute(R.attr.colorPrimary, typedValue, true);
                final int color = typedValue.data;