安卓實現頁面向上滾動時改變標題欄

2021-08-21 19:36:57 字數 1570 閱讀 3729

有時候我們會有這樣的需求,要求頁面的上部分直接放一張,或者是輪播圖,標題欄只有乙個返回的箭頭或者是乙個搜尋框,但是隨著頁面的滾動,又逐漸顯示出來乙個新的標題欄,這個時候需要我們自定義乙個scrollview並監聽他的滾動距離,來讓原本隱藏的布局逐漸顯示出來。

1、自定義乙個scrollview,**如下:

public class observablescrollview extends scrollview 

private scrollviewlistener mscrollviewlistener = null;

public observablescrollview(context context)

public observablescrollview(context context, attributeset attrs)

public void setscrollviewlistener(scrollviewlistener scrollviewlistener)

@override

protected void onscrollchanged(int x, int y, int oldx, int oldy) }}

這裡自定義的目的,是為了監聽scrollview的滾動,把滾動的距離傳出去,方便其他的介面進行判斷。

2、在布局裡引用,使用方法和原生的scrollview一樣,只能包含乙個子控制項,這裡就不做贅述。只是標題欄要寫兩個,乙個是直接顯示出來的,乙個是滾動到某個位置後顯示出來的,這裡放一下**:

3、現在就是關鍵的一步,就是計算高度。

1)首先你需要去實現一下第一步裡我們定義的介面,去重寫監聽滾動的方法。

3)新增監聽

viewtreeobserver vto = mcover.getviewtreeobserver();

vto.addongloballayoutlistener(new viewtreeobserver.ongloballayoutlistener()

});

4)在重寫的方法裡進行判斷

@override

public void onscrollchanged(observablescrollview scrollview, int x, int y, int oldx, int oldy) else if (y > 0 && y <= imageheight) else

}

完成,現在就可以進行測試了,如果需要更複雜的效果,可以繼續進行補充的修改。

頁面列表實現向上無縫滾動

class hello id container content1 v for item,index in list key index li ul div content2 div div template export default,mounted else 定時器 var timer set...

安卓TextView滾動字幕實現跑馬燈

ui設計 mainactivity package com.example.android textview5 import android.os.bundle import android.text.html import android.text.method.linkmovementmetho...

安卓頁面之間實現頁面的跳轉,並實現資料的傳輸

響應函式的事件 在乙個介面輸入文字,然後跳轉到另一介面依然顯示 login 表示內部類監聽 public void login view view override protected void onactivityresult int requestcode,int resultcode,inte...