簡體   English   中英

使用CoordinatorLayout時如何停止工具欄標題的縮小和增長

[英]How to stop toolbar title shrink and grow when using CoordinatorLayout

我想要類似於我的工具欄標題的行為,如下圖所示。

在此處輸入圖片說明

如您所見,它的標題完全滾動時會消失並完全消失。 向上滾動時,工具欄標題就會出現。 這是我的應用程序工具欄標題的工作方式。

在此處輸入圖片說明

如您所見,我的工具欄標題沒有消失。 如果可能的話,我想使標題淡出而在向下滾動時甚至不向下移動。 這是我的源代碼。

布局文件

    <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);
    }
}

請指出我需要做些什么才能得到我描述的行為。

感謝所有的答案。 通過添加expandedTitleTextAppearance屬性,實現了我想要的功能。

首先將app:expandedTitleTextAppearance="@style/TransparentText"CollapsingToolbarLayout

然后在如下所示的樣式文件夾中創建TransparentText文件。

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

結果

在此處輸入圖片說明

您可以在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");

我認為下面提到的代碼可以解決您的問題。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM