使用CoordinatorLayout时如何停止工具栏标题缩小和增长

时间:2017-06-28 12:03:05

标签: android xml

我想要与我的工具栏标题类似的行为,如下图所示。

enter image description here

正如你所看到的,当它完全滚动时,它的标题会淡出并完全消失。当它向上滚动工具栏标题来到写入位置。这是我的应用工具栏标题的工作原理。

enter image description here

正如您所看到的,我的工具栏标题不会消失。如果有可能的话,我希望在向下滚动时不会向下移动时使标题淡出。这是我的源代码。

布局文件

    <android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/main_background_color">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbarLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:id="@+id/camera_image"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:fitsSystemWindows="true"
                android:scaleType="centerInside"
                android:src="@drawable/customer_registration_toolbar_image"
                android:adjustViewBounds="true"
                app:layout_collapseMode="parallax" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

          <!-- All scroll able contain here -->

       </LinearLayout>

    </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>

活动

public class CustomerRegistrationActivity extends AppCompatActivity {

    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_customer_registration);

        toolbar = (Toolbar) findViewById(R.id.toolbar);

        toolbar.setTitle("Customer Registration");
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }
}

请指出我需要做些什么来获得我描述的行为。

3 个答案:

答案 0 :(得分:0)

您可以在xml中指定,如下所示,

        <android.support.design.widget.AppBarLayout
            android:id="@+id/app_bar"
            android:layout_width="match_parent"
            android:layout_height="@dimen/app_bar_height"
            android:fitsSystemWindows="true"
            android:theme="@style/AppTheme.AppBarOverlay">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/toolbar_layout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                app:contentScrim="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    android:layout_gravity="center_horizontal"
                    android:background="?attr/colorPrimary"
                    android:gravity="center"
                    app:layout_collapseMode="pin"
                    app:layout_scrollFlags="scroll|enterAlways"
                    app:popupTheme="@style/AppTheme.PopupOverlay"
                    app:title="@string/title"
                    app:titleTextColor="@color/white" />

            </android.support.design.widget.CollapsingToolbarLayout>
        </android.support.design.widget.AppBarLayout>

并在嵌套滚动视图中设置它

 <android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:behavior_overlapTop="@dimen/some_value_to_place_title_under_button" // eg 50 dp, 70dp
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

您应该在工具栏中指定标题 并删除用于设置标题的Java代码

  app:title="@string/title"

并且还需要将命名空间导入布局的根视图

 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"

或者在

的java代码集标题中
 getSupportActionBar().setTitle("Title");

答案 1 :(得分:0)

我认为下面提到的代码可以解决你的问题。

collapsingToolbarLayout.setExpandedTitleColor(Color.parseColor("#00FFFFFF"));

答案 2 :(得分:0)

感谢所有答案。我通过添加expandedTitleTextAppearance属性实现了我的目标。

首先将app:expandedTitleTextAppearance="@style/TransparentText"添加到CollapsingToolbarLayout

在下面的样式文件夹中创建TransparentText文件。

<style name="TransparentText">
    <item name="android:textColor">#00000000</item>
    <item name="android:textSize">0sp</item>
</style>

<强>结果

enter image description here