1. 程式人生 > >Android view滑動懸浮固定效果實現-踩坑記

Android view滑動懸浮固定效果實現-踩坑記

android新特性:使用CollapsingToolbarLayout實現摺疊效果及問題解決[有比較嚴重的卡頓感]

https://www.jianshu.com/p/485223349703

CollapsingToolbarLayout有滑動摺疊有嚴重的卡頓,不順暢,實現一波之後,非常不推薦。 

推薦以下方式,需要懸浮的View整2個,自定義ScrollView中監聽滑動 隱藏顯示。

https://blog.csdn.net/ganshenml/article/details/78341223

https://blog.csdn.net/ganshenml/article/details/53112722,監聽ScrollView中的

onScrollChanged()

佈局

自定義ScrollView

<?xml version="1.0" encoding="utf-8"?>

<layout xmlns:tools="http://schemas.android.com/tools"

xmlns:android="http://schemas.android.com/apk/res/android"

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

<data>

</data>

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@color/bg_gray_f8"

android:orientation="vertical">

<com.szltech.OrientSecurities.view.CustomTitleBar

android:id="@+id/titleBar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

app:text_title="我的資產" />

<com.szltech.OrientSecurities.thirdpart.MyCustomScrollView

android:id="@+id/my_scroll_view"

android:layout_below="@id/titleBar"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<LinearLayout

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<FrameLayout

android:layout_width="match_parent"

android:layout_height="wrap_content">

<include

android:id="@+id/layout_piechart"

layout="@layout/layout_piechart"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

</FrameLayout>

<FrameLayout

android:id="@+id/tab_layout"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<include

layout="@layout/layout_myassert_tab"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

</FrameLayout>

<View

android:background="@color/white"

android:layout_width="match_parent"

android:layout_height="10dp"/>

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginLeft="@dimen/listview_margin"

android:layout_marginRight="@dimen/listview_margin"

android:background="@drawable/bg_assest_list_top"

android:gravity="center_vertical"

android:paddingLeft="@dimen/margin_10"

android:paddingRight="@dimen/margin_10">

<TextView

android:id="@+id/tv_tab_total_str"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="直銷總資產"

android:textColor="@color/white"

android:textSize="@dimen/size16" />

<TextView

android:id="@+id/tv_tab_total_value"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

tools:text="888,888.88"

android:text="--"

android:textColor="@color/white"

android:textSize="@dimen/size16" />

</RelativeLayout>

<ListView

android:id="@+id/lv_asset_detail"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginLeft="@dimen/listview_margin"

android:layout_marginRight="@dimen/listview_margin"

android:layout_marginTop="-10dp"

android:divider="@null"

android:listSelector="@color/transparent"

android:scrollbars="none" />

</LinearLayout>

</com.szltech.OrientSecurities.thirdpart.MyCustomScrollView>

<FrameLayout

android:visibility="gone"

android:id="@+id/tab_layout_float"

android:layout_below="@id/titleBar"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<include

layout="@layout/layout_myassert_tab"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

</FrameLayout>

</RelativeLayout>

</layout>

CoordinatorLayout方式

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools">


    <data>


    </data>


    <LinearLayout 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/bg_gray_f8"
        android:orientation="vertical">


        <com.szltech.OrientSecurities.view.CustomTitleBar
            android:id="@+id/titleBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:text_title="我的資產" />


        <android.support.design.widget.CoordinatorLayout
            android:id="@+id/coordinator_Layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">


            <android.support.design.widget.AppBarLayout
                android:id="@+id/app_bar_layout"
                app:layout_behavior="com.szltech.OrientSecurities.thirdpart.FlingBehavior"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">




                <android.support.design.widget.CollapsingToolbarLayout
                    android:id="@+id/collapsingToolbarLayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:collapsedTitleTextAppearance="@style/ToolBarTitleText"
                    app:contentScrim="@color/bg_red"
                    app:expandedTitleMarginEnd="10dp"
                    app:expandedTitleMarginStart="10dp"
                    app:expandedTitleTextAppearance="@style/transparentText"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed">
                    <!--設定layout_scrollFlags保證CollapsingToolbarLayout能滾動-->
                    <!--app:layout_scrollFlags="scroll|exitUntilCollapsed"-->




                    <FrameLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">


                        <include
                            android:id="@+id/layout_piechart"
                            layout="@layout/layout_piechart"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content" />
                    </FrameLayout>


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




                <FrameLayout
                    android:id="@+id/tab_layout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
                    <include
                        android:id="@+id/tab_layout_include"
                        layout="@layout/layout_myassert_tab"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"/>
                </FrameLayout>


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




            <android.support.v4.widget.NestedScrollView
                android:id="@+id/nsv"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:fillViewport="true"
                android:scrollbars="none"
                app:layout_behavior="@string/appbar_scrolling_view_behavior">




                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior">


                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/listview_margin"
                        android:layout_marginRight="@dimen/listview_margin"
                        android:background="@drawable/bg_assest_list_top"
                        android:gravity="center_vertical"
                        android:paddingLeft="@dimen/margin_10"
                        android:paddingRight="@dimen/margin_10">


                        <TextView
                            android:id="@+id/tv_tab_total_str"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="直銷總資產"
                            android:textColor="@color/white"
                            android:textSize="@dimen/size16" />


                        <TextView
                            android:id="@+id/tv_tab_total_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            tools:text="888,888.88元"
                            android:text="--"
                            android:textColor="@color/white"
                            android:textSize="@dimen/size16" />
                    </RelativeLayout>


                    <ListView
                        android:id="@+id/lv_asset_detail"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/listview_margin"
                        android:layout_marginRight="@dimen/listview_margin"
                        android:layout_marginTop="-10dp"
                        android:divider="@null"
                        android:listSelector="@color/transparent"
                        android:scrollbars="none" />


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




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

相關推薦

Android view滑動懸浮固定效果實現-

android新特性:使用CollapsingToolbarLayout實現摺疊效果及問題解決[有比較嚴重的卡頓感]https://www.jianshu.com/p/485223349703CollapsingToolbarLayout有滑動摺疊有嚴重的卡頓,不順暢,實現一

Android view滑動懸浮固定效果實現

1.背景 在專案開發過程中,有時候會碰到這樣的需求:在滑動的過程中,在某時要將子view固定在頂部(常見的是將介面中的tab在滑動到頂部的時候進行固定)。 之前寫過一篇滑動元件懸浮固定在頂部的部落格,但感覺還是有些複雜,因此就有了這次的實現。效果圖: 2.思路 (Coor

Android UI效果實現 滑動模糊漸變效果實現

大家應該都看到過iOS7解鎖螢幕的滑動模糊漸變效果,好了,現在可以把手紙收起來了,今天黃老師就給大家講一下如何在Android平臺上 實現類似的滑動模糊漸變效果,其實方式遠比你想像的簡單。 目標效果展示: 第一部分:幾個前提 說到模糊效

Android桌面懸浮效果實現,仿360手機衛士懸浮效果

大家好,今天給大家帶來一個仿360手機衛士懸浮窗效果的教程,在開始之前請允許我先說幾句不相干的話。不知不覺我發現自己接觸Android已有近三個年頭了,期間各種的成長少不了各位高手的幫助,總是有很多高手喜歡把自己的經驗寫在網上,供大家來學習,我也是從中受惠了很多,在此我深表感

Android View體系(二)實現View滑動的六種方法

1.View的滑動簡介 View的滑動是Android實現自定義控制元件的基礎,同時在開發中我們也難免會遇到View的滑動的處理。其實不管是那種滑動的方式基本思想都是類似的:當觸控事件傳到View時,系統記下觸控點的座標,手指移動時系統記下移動後的觸控

C# WPF QQ新消息托盤懸浮效果實現

pop https 高度 pes ica ace api draw amp 今天在做一個項目的時候需要這麽一個效果,但是網上找了一會發現並沒有現成的給我參考(復制),但是呢,我千(到)辛(處)萬(抄)苦(襲)想(復)破(制)頭(粘)腦(貼)終於還是給做出來了~嘿嘿嘿 QQ

android:多次點選效果實現

public class MainActivity extends AppCompatActivity{ private final static int COUNTS = 5;//點選次數 private final static long VALIDTIME = 1300;/

C# WPF QQ新訊息托盤懸浮效果實現

原文: C# WPF QQ新訊息托盤懸浮窗效果實現 今天在做一個專案的時候需要這麼一個效果,但是網上找了一會發現並沒有現成的給我參考(複製),但是呢,我千(到)辛(處)萬(抄)苦(襲)想(復)破(制)頭(粘)腦(貼)終於還是給做出來了~嘿嘿嘿 QQ新訊息懸浮窗即:QQ有新訊息時托盤圖示會閃動,此時移動滑鼠

Android 卡片邊框模糊陰影效果實現

1. 使用<shape>標籤實現 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

Android 露珠/水滴 拖拽 效果實現

解釋一下標題: 露珠拖拽/水滴拖拽:就是一個View不但能跟著手滑動。還能根據滑動速度,改變形狀,像露珠或者水滴那樣。 這裡是效果實現的Demo 具體實現就是如下一個Java檔案 DewdropView.java package com.demo.dewdropdemo; i

android滑動懸浮tab&無限迴圈的viewPager

android之滑動懸浮tab&無限迴圈的viewPager 2017年01月10日 15:12:03 小鐘視野 閱讀數:2627 標籤: 真正的無效迴圈viewpager懸浮tab選中tab居中 更多 效果圖如下: 雖然listview現在已經

android 可移動懸浮框的實現

    整個Android的視窗機制是基於一個叫做 WindowManager,這個介面可以新增view到螢幕,也可以從螢幕刪除view。它面向的物件一端是螢幕,另一端就是View,直接忽略我們以前的Activity或者Dialog之類的東東。其實我們的Activity或

android recyclerView滑動固定位置

因為recyclerView的scrillToPosition(int position)只能移動到介面顯示的位置,所以當滑到介面顯示的位置時,還要手動再劃一點位置 1.要滑動的位置在螢幕的上方直接滑動到該位置,即顯示在螢幕頂部 2.要滑動的位置在螢幕的中間,向上滑動一段距離 3.要滑動的位置在螢幕

Android 動態Tab分頁效果實現

    當前專案使用的是TabHost+Activity進行分頁,目前要做個報表功能,需要在一個Tab頁內進行Activity的切換。比方說我有4個Tab頁分別為Tab1,Tab2,Tab3,Tab4,現在的需求是需要將Tab1內的Activity動態切換。找了很多資料最終使用了ActivityGroup解

Android中主流狀態列效果實現

Android在早期的系統版本中,狀態列是不支援修改的,所以開啟任何應用程式會發現頂部的狀態列始終是黑條。在Android 4.4(KitKat)之後,系統的狀態列開始支援開發者定製和修改,包括顯示或隱藏,更改顏色等(嗯,一定是抄襲ios的...),又在Android 5.

使用Material Design實現沉浸式狀態列+懸浮+漸變效果實現

前言 近期發現市面上很多App都採用了沉浸式狀態列效果,近期抽時間使用Material Design控制元件實現了一個,故記錄分享 程式碼實現 1、新增Material Design依賴 implementation 'com.android.su

巢狀滾動多TAB可懸浮效果實現

前言        在前面的文章中我們已經實現過巢狀滾動可以懸浮頭效果,當時有兩種實現:         1. Listview多tab上滑懸浮 一種是一個ListView裡面切換資料來源,同時監控頁面滾動,佈局頁面中設定兩層,一層放置懸浮頭,滾動到一定位

Android廣告輪播圖效果實現

效果如下: 首先看下一下佈局檔案: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schem

安卓View滑動之利用動畫實現彈性滑動

背景昨天用Scroller實現了下彈性滑動,而利用動畫,也可以實現類似的效果步驟1、建立ValueAnimator,新增updateListener主要的scroll邏輯是放在updateListener裡的,程式碼如下 final ValueAnimator

android view滑動助手類OverScroller

 0hi猿團提供了移動跨平臺開發視訊,包括html5,apicloud appcan,dcloud,具體請看http://www.9y.cm  Android裡Scroller類是為了實現View平滑滾動的一個Helper類。通常在自定義的View時使用,在View中定