android使用滚动视图更改工具栏文本颜色

时间:2019-03-25 13:35:15

标签: android android-scrollview android-coordinatorlayout

我正在尝试使CollapsingToolbarLayout标题带有动画效果。我的目标是使文本中心位置动画化,现在使文本左侧动画化。这是我的xml代码

我的目标是要收到这样的结果。我将使用工具栏文本的居中大小更改CollapsingToolbarLayout文本,并且使用滚动位置来更改工具栏的背景颜色。

我该如何解决这个问题? 谢谢

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

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="321dp"
    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"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleGravity="bottom|center_horizontal"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <ImageView
            android:id="@+id/imageViewCollapsing"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:src="@drawable/winterscenery"
            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="parallax"
            android:background="#ff00"
            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"
    android:padding="8dp"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

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

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/content_text_one" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/content_button" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/content_text_two" />

    </LinearLayout>

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

1 个答案:

答案 0 :(得分:0)

尝试此操作以对CollapsingToolbarLayout进行任何更改。 创造风格。

<style name="coll_toolbar_title">
    <item name="android:textColor">@color/primary</item>
    <item name="android:textSize">@dimen/_13sdp</item>
</style>

然后使用ID设置..

collapseLayout.setCollapsedTitleTextAppearance(R.style.coll_toolbar_title)

mange滚动更改以更改此处,您可以更改工具栏背景...

appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
    boolean isShow = true;
    int scrollRange = -1;

    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
        if (scrollRange == -1) {

        }
        if (scrollRange + verticalOffset == 0) {
            // expend
            collapsingToolbarLayout.setTitle("Title");
            isShow = true;
        } else if(isShow) {
            // collepse
            collapsingToolbarLayout.setTitle(" ");//carefull there should a space between double quote otherwise it wont work 
            isShow = false;
        }
    }
});