直播系統平臺搭建,DataBinding自定義雙向繫結
直播系統平臺搭建,DataBinding自定義雙向繫結實現的相關程式碼
這裡以CompoundButton系列控制元件(CheckBox、Switch、ToggleButton等)為例雙向繫結Checked
首先是寫入Checked的方法
@BindingAdapter("isCheck") fun setCheck(view: CompoundButton, isCheck:Boolean?){ if(isCheck != null && view.isChecked != isCheck) view.isChecked = isCheck }
其中BindingAdapter需要兩個引數,value表示自定義屬性,requireAll表示是否需要全部引數,這裡只需要一個引數,所以使用預設值就行
然後是輸出Checked的方法
@InverseBindingAdapter(attribute = "isCheck",event = "checkAttrChanged") fun getCheck(view: CompoundButton?):Boolean{ return view?.isChecked?:false }
InverseBindingAdapter接收兩個引數,attribute表示在xml使用的自定義屬性,event表示觸發更改事件的監聽器
接下來寫getCheck的觸發事件,一般要在監聽到check更改時觸發,所以要在setOnCheckedChangeListener裡監聽
@BindingAdapter("checkAttrChanged") fun setCompoundCheckListener(view: CompoundButton,checkAttrChanged:InverseBindingListener){ view.setOnCheckedChangeListener { buttonView, isChecked -> checkAttrChanged.onChange() } }
BindingAdapter傳入InverseBindingAdapter的event,並且在監聽到check更改時,通過InverseBindingListener.onChange()通知isCheck修改
使用:
<androidx.appcompat.widget.SwitchCompat android:layout_width="wrap_content" android:layout_height="wrap_content" isCheck="@={vm.check}"/>
以上就是 直播系統平臺搭建,DataBinding自定義雙向繫結實現的相關程式碼,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2839992/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Databinding 雙向繫結詳解
- 直播平臺搭建,自定義氣泡效果(BubbleView)View
- vue 雙向繫結(v-model 雙向繫結、.sync 雙向繫結、.sync 傳物件)Vue物件
- 前端 | 自定義元件 v-model:Vue 如何實現雙向繫結前端元件Vue
- 直播系統程式碼,自定義平臺私聊對話方塊
- vue 自定義元件 v-model雙向繫結、 父子元件同步通訊Vue元件
- 直播平臺搭建原始碼,qt自定義滑動按鈕原始碼QT
- 直播系統平臺搭建,自定義控制元件根據圖片寬度設定長度控制元件
- 直播平臺搭建,實現自定義設定登入頁面
- 直播平臺搭建,自定義View實現loading動畫載入View動畫
- 繫結自定義事件事件
- Vue雙向繫結初探Vue
- vue雙向繫結原理Vue
- 直播系統原始碼--搭建直播平臺的奠基石原始碼
- Android官方架構元件DataBinding雙向繫結篇: 觀察者模式的殊途同歸Android架構元件模式
- vue雙向繫結盲區Vue
- JS雙向資料繫結JS
- 揭密 Vue 的雙向繫結Vue
- Vue、MVVM、MVC、雙向繫結VueMVVMMVC
- Vue雙向繫結實現Vue
- Vue雙向繫結原理,教你一步一步實現雙向繫結Vue
- 直播平臺開發,自定義中間向兩邊滑動的滑動條
- 從單向到雙向資料繫結
- 080 元件自定義事件-繫結元件事件
- 直播系統平臺搭建,點選連結跳轉到三方平臺或其他頁面
- vue實踐:元件雙向繫結Vue元件
- vue雙向資料繫結原理Vue
- vue實現prop雙向繫結Vue
- vue v-model 雙向繫結Vue
- Vue資料雙向繫結原理Vue
- angular雙向繫結—(按鈕+下拉)Angular
- vue生命週期、雙向繫結Vue
- 原生js雙向資料繫結JS
- iOS 自定義雙向滑塊SlideriOSIDE
- 自定義雙向迴圈連結串列基本函式介面函式
- 直播平臺原始碼,Flutter 自定義 虛線 分割線原始碼Flutter
- 如何搭建直播平臺?直播平臺搭建需要注意什麼?
- 直播系統平臺搭建,控制鍵盤彈出收縮