如何監聽CollapsingToolbarLayout的展開與摺疊
使用官方提供的 AppBarLayout.OnOffsetChangedListener就能實現了,不過要封裝一下才好用。
自定義一個繼承了 AppBarLayout.OnOffsetChangedListener的類,這裡命名為AppBarStateChangeListener:
public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener { public enum State { EXPANDED, COLLAPSED, IDLE } private State mCurrentState = State.IDLE; @Override public final void onOffsetChanged(AppBarLayout appBarLayout, int i) { if (i == 0) { if (mCurrentState != State.EXPANDED) { onStateChanged(appBarLayout, State.EXPANDED); } mCurrentState = State.EXPANDED; } else if (Math.abs(i) >= appBarLayout.getTotalScrollRange()) { if (mCurrentState != State.COLLAPSED) { onStateChanged(appBarLayout, State.COLLAPSED); } mCurrentState = State.COLLAPSED; } else { if (mCurrentState != State.IDLE) { onStateChanged(appBarLayout, State.IDLE); } mCurrentState = State.IDLE; } } public abstract void onStateChanged(AppBarLayout appBarLayout, State state); }
然後這樣使用它:
mAppBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() { @Override public void onStateChanged(AppBarLayout appBarLayout, State state) { Log.d("STATE", state.name()); if( state == State.EXPANDED ) { //展開狀態 }else if(state == State.COLLAPSED){ //摺疊狀態 }else { //中間狀態 } } });
可能這並不是什麼新鮮知識,但是我是第一次有這樣的需求。很久以前開源了XRecyclerView,網友使用過程中提了很多issues,第一次體會到挖坑容易填坑難。上週開始我決定把這些issues一個個的解決,提高穩定性,並增加一些功能。此次就是為了解決issues/85 。XRecyclerView修復差不多之後,我做一個文件,放在網站首頁。
相關推薦
如何監聽CollapsingToolbarLayout的展開與摺疊
使用官方提供的 AppBarLayout.OnOffsetChangedListener就能實現了,不過要封裝一下才好用。 自定義一個繼承了 AppBarLayout.OnOffsetChangedListener的類,這裡命名為AppBarStateChangeL
監聽CollapsingToolbarLayout是摺疊還是展開
今天整理我之前寫的程式碼,發現之前監聽CollapsingToolbarLayout的狀態的時候是通過監聽包裹CollapsingToolbarLayout著的AppBarLayout的OnOffsetChangedListener的方法來實現的。當時也是借鑑其他程式設計師的
微信小程式開發中textarea文字域監聽字數限制與動態計算
微信小程式開發時常會有評論或者備註功能,都會用到文字域字元長度計算以及字元限制的功能,筆者把最簡潔易用的案例分享出來。學習之前先看微信官方API文件 https://mp.weixin.qq.com/debug/wxadoc/dev/component/textarea.html
Zookeeper的監聽機制api與原理
1.連線Zookeeper,註冊監聽 ZooKeeper zkCli = new ZooKeeper("192.168.50.183:2181,192.168.50.184:2181,192.168.50.185:2181", 3000, new Watcher() { //
js事件監聽:addEventListener() 與 移除事件:removeEventListener()
說事件繫結得先說事件流 事件流 冒泡型事件流:事件的傳播是從最特定的事件目標到最不特定的事件目標。即從DOM樹的葉子到根。【推薦】 捕獲型事件流:事件的傳播是從最不特定的事件目標到最特定的事件目標。即從DOM樹的根到葉子。 DOM標準採用捕獲+冒泡。兩種事件流都會觸發
Oracle常用命令之監聽的啟動與關閉以及切換資料庫例項
這篇內容說下Oracle資料庫如何啟動、關閉資料庫監聽以及在同一個伺服器上有多個例項時如何切換到自己需要的例項上去。 1.啟動資料庫監聽 在伺服器命令列直接輸入命令lsnrctl start即可(listener control縮寫)
Android 通過註冊廣播,實時監聽網路連線與斷開狀態的變化
很多時候我們都需要實時監聽網路狀態,當網路狀態發生變化之後立即通知程式進行不同的操作。 監聽廣播的兩種方式: (1)在AndroidManifest.xml配置檔案中宣告 <receiver android:name=".NetworkConn
Unity3d監聽手機暫停與退出事件
1,退出事件,Unity3d,InPut就包含了: Input.GetKey(KeyCode.Escape) 、 Input.GetKey(KeyCode.Home) 、Input.GetKey(KeyCode.Menu); 2,暫停事件,Unity3d的 OnApplicationFocus、OnApp
可控制的Select的展開與摺疊
<Object type="application/x-oleobject" id=Shell classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B"></Object><SELECT id=cb
listview巢狀gridview,並實現grid元素部分顯示以及點選展開與摺疊
有時我們需要用GridView顯示目錄列表,有時甚至是二級的,即listview每一個item裡面又各自嵌入一個gridview,但是當二級目錄(資料條目)的數量過多時,介面會比較臃腫,這時我們就想要有類似展開與摺疊的效果,作者採用的策略是資料分段的分別顯示,其中對於顯示邊
ORACLE 監聽動態註冊與靜態註冊
註冊就是將資料庫作為一個服務註冊到監聽程式中。客戶端不需要知道資料庫名和例項名,只需要知道該資料庫對外提供的服務名就可以申請連結到資料庫。這個服務名可以與資料庫名一樣,也有可能不一樣。在資料庫服務啟動的過程中,資料庫伺服器向監聽程式中註冊相應的服務。無論何時啟動資料庫,預設的
關於CoordinatorLayout展開與摺疊相關屬性
1、如何監聽CollapsingToolbarLayout的展開與摺疊 使用官方提供的 AppBarLayout.OnOffsetChangedListener就能實現了,不過要封裝一下才好用。 自定義一個繼承了 AppBarLayout.OnOffsetChangedLi
CollapsingToolbarLayout的使用及摺疊事件監聽
CollapsingToolbarLayout給我麼提供了一個可以摺疊的toolbar。效果如下 它是design包裡面的元件,使用前需要匯入庫依賴。compile 'com.android.support:design:25.3.1' 先看xml檔案。 <?xml
JS中的事件監聽與事件流
pan 交互 ack 其他 獲得 發生 listen 監聽器 pre 事件監聽: 使用監聽器(eventListener)來預定事件,在傳統軟件工程中稱成為觀察者模式 執行某種操作時(特定的交互瞬間),會產生對象,對象會沿事件流的方向傳播。 事件流: 事件流有
linux下oracle11g R2的啟動與關閉監聽、數據庫
source app var copy time lac started success let 一、啟動監聽與數據庫 1、啟動監聽: [html] view plain copy [[email protected]/* */ oracle]# s
spring監聽與IBM MQ JMS整合
[] utf-8 jms lan domain gravity tag tcp 主機 spring xml 的配置: 文件名:applicationContext-biz-mq.xml [html] view plain copy print? <?xml
rabbitMq與spring boot搭配實現監聽
address app caching prefix 前段時間 ever 不用 理解 its 在我前面有一篇博客說到了rabbitMq實現與zk類似的watch功能,但是那一篇博客沒有代碼實例,後面自己補了一個demo,便於理解。demo中主要利用spring boot
IE與DOM的事件監聽
attach 事件監聽 不支持 cnblogs log ima 1-1 mage png IE 事件監聽 標準DOM不支持 註意幾點: window.onload attachEvent detachEvent 標準DOM監聽,ie不支
元素全屏的設置與監聽
cnblogs list msr cancel fun 元素 awk pan code 作者網站:http://hawkzz.com 設置全屏和退出全屏 //全屏設置 $('#fullScreen').on('click', f
計算器界面與監聽事件
title default ride bool activate performed todo cati 最小化 package 計算器;import java.awt.BorderLayout; import java.awt.Container; import ja