Android 静态工具栏图标

Android 静态工具栏图标,android,material-design,android-toolbar,Android,Material Design,Android Toolbar,我正在开发一个Android-L-test-app,其中包含一些材料设计指南的功能。我正在尝试实现一个工具栏,在上面的图标是静态的 <include layout="@layout/toolbar_actionbar" /> <!-- Session title --> <TextView android:layout_height="wrap_content" android:layout_

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

        <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>
这是在谷歌IO 2014应用程序中完成的,我想复制它。我一直在看代码(),但我不知道他们是怎么做到的

        <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>
下面是一个屏幕截图,可以直观地看到我的问题:

        <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>
左侧:我实际情况的屏幕截图(菜单图标在标题中为硬图标,并随这些图标一起滚动) 右侧:这就是我想要的(“屏幕顶部的静态”图标):

        <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>
有什么想法吗

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

布局工具栏\u actionbar.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>
<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:

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


您可以将主要内容添加到scrollview中,并从中删除工具栏。然后,在滚动时应使用淡入淡出效果

        <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>
  • 相对于所有屏幕
  • 相对线内的工具栏对齐父顶部,透明
  • 滚动查看与所有屏幕相对的内部视图
  • 当您向下滚动X距离scrollView和viceversa时,工具栏从透明变为主题颜色
  • 您可以在java中获得colorPrimary或colorPrimaryDark,因此:

            <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>
    
                TypedValue typedValue = new TypedValue();
                MainActivity.this.getTheme().resolveAttribute(R.attr.colorPrimary, typedValue, true);
                final int color = typedValue.data;
    

    它不像听起来那么简单…:)事实上我有工具栏,除了褪色效果。我第一次使用工具栏时,我把它放在滚动视图中,得到的问题和你一样。