因為時間原因,這里只是簡單記錄一下对途,有興趣查看完整代碼的小伙伴赦邻,請前往<a >GitHub</a>下載查看。
之前項目中需要實現(xiàn)界面滑動在頂部時实檀,其中某一塊布局懸浮惶洲,看一下效果圖:
當(dāng)需要懸浮的布局滑動到標(biāo)題欄時,懸浮在頂部劲妙,向下滑時恢復(fù)原樣。
在來看一下簡單實現(xiàn)后的效果圖:
這個效果實現(xiàn)起來不難儒喊,簡單說一下實現(xiàn)思路:
1镣奋、監(jiān)聽滾動時的Y值變化
2、判斷當(dāng)前位置在頂部時怀愧,添加懸浮布局
3侨颈、否則就直接移除布局
4余赢、重寫onTouchEvent,對手勢抬起時界面還在滑動時做相關(guān)處理
具體的還是來看看代碼:
<b>懸浮布局文件</b>
<b>主布局文件</b>
布局文件具體代碼就不需要貼出來了,很簡單哈垢。
<b>java代碼</b>
自定義ScrollView妻柒,實現(xiàn)三個構(gòu)造方法
第一個構(gòu)造方法就是我們平常在普通代碼中新建view對象的時候
xxx x=new xxx(this);第二個構(gòu)造就是我們在xml中添加一個view,將自定義的view在布局中引用耘分,這樣就把我們自定義的view添加進布局中举塔,如果我們添加一些屬性,margin求泰,height央渣,witch等,這些屬性會存放在AttributeSet參數(shù)中
第三個構(gòu)造方法比第二個多出一個defStyleAttr的int類型的值渴频,這是一個自定義屬性的參數(shù)芽丹,第三個構(gòu)造方法是不會被系統(tǒng)默認(rèn)調(diào)用的,而是我們自己自己顯示調(diào)用卜朗,比如在第二個構(gòu)造方法中調(diào)用第三個函數(shù)拔第,并將第三個參數(shù)設(shè)為0(設(shè)置為0一般可以滿足基本開發(fā))
定義一個接口回調(diào),用來回調(diào)Y值
重寫onTouchEvent方法做相關(guān)邏輯操作
這里只是將MyScrollView類中的代碼貼出了部分场钉,具體的請前往<a >GitHub</a>下載查看蚊俺。