滑動顯示隱藏ToolBar

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

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

    <LinearLayout
        android:id="@+id/llTitle"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dm_75"
        android:background="@android:color/transparent"
        android:orientation="vertical"
        android:paddingTop="@dimen/dm_25">

        <android.support.v7.widget.Toolbar
            android:id="@+id/alphaToolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:visibility="gone"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            app:titleTextColor="@color/white">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:singleLine="true"
                android:text="@string/home_title"
                android:textColor="@color/white"
                android:textSize="18dp" />
        </android.support.v7.widget.Toolbar>
    </LinearLayout>
  </android.support.design.widget.CoordinatorLayout>

在代碼中設置監聽事件進行滑動顯示隱藏

   mScroll.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
        @Override
        public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
            int toolbarHeight = llTitle.getHeight();
            //當滑動的距離 <= toolbar高度的時候,改變Toolbar背景色的透明度,達到漸變的效果
            if (mScroll.getScrollY() <= toolbarHeight) {
                float scale = (float) mScroll.getScrollY() / toolbarHeight;
                float alpha = scale * 255;
                llTitle.setBackgroundColor(Color.argb((int) alpha, 128, 0, 0));
                alphaToolbar.setVisibility(View.GONE);
            } else {
                //上述雖然判斷了滑動距離與toolbar高度相等的情況,但是實際測試時發現,標題欄的背景色
                //很少能達到完全不透明的情況,所以這里又判斷了滑動距離大于toolbar高度的情況,
                //將標題欄的顏色設置為完全不透明狀態
                llTitle.setBackgroundResource(R.color.colorPrimary);
                alphaToolbar.setVisibility(View.VISIBLE);
            }
        }
    });
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 先來看下效果圖 本文使用到RecyclerView、CardView、butterknife、FloatingAc...
    JC_Hou閱讀 2,564評論 4 26
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,381評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,245評論 4 61
  • 秋天,葉子的視野,柿子的形態。田野村莊越漸奢侈,從未遠離,以為回得去。桂香鋪天蓋地,菊香另辟蹊徑,甜膩苦淡各自入味...
    第九棵香樟樹閱讀 294評論 0 0
  • 什么是最好的書法,目前還沒有確切的定義,本人認為,看起來筆法自然流暢或蒼勁有力,給人有一種美的享受和舒服感就是好作...
    毛筆書法愛好者閱讀 677評論 0 2