日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kotlin-android-extensions过时了,迁移到ViewBinding

發(fā)布時間:2023/12/16 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kotlin-android-extensions过时了,迁移到ViewBinding 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

回顧歷史,kotlin-android-extensions插件讓我們省去了很多findViewById的代碼,直接使用控件id操作控件。不過在Android Studio 4.1及以上IDE新建項目的時候,默認不會引入他了,如果還在使用,會給一個警告:kotlin-android-extensions插件已被廢棄,現(xiàn)在推薦使用ViewBinding來進行替代。

更新gradle文件

build.gradle

plugins {//... // id 'kotlin-android-extensions' //刪除這行id 'kotlin-parcelize' //添加這行 }android {...buildFeatures {dataBinding = trueviewBinding = true //添加這行} }

更新Activity和Fragment等頁面代碼

  • 刪掉kotlinx.android.synthetic相關(guān)導(dǎo)入
    關(guān)鍵字:kotlinx.android.synthetic
  • 為要使用的活動或片段擴充生成的綁定類的實例
    這部分,相信有的小伙伴使用DataBindingUtil和泛型做過基類的封裝比如這種“BaseActivity<VM : BaseViewModel, DB : ViewDataBinding”,做過的直接跳第三條。
  • //activity示例 private lateinit var binding: ResultProfileBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)//布局為 result_profile.xmlbinding = ResultProfileBinding.inflate(layoutInflater)val view = binding.rootsetContentView(view) } //fragment示例 private var _binding: ResultProfileBinding? = null private val binding get() = _binding!!override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle? ): View? {_binding = ResultProfileBinding.inflate(inflater, container, false)val view = binding.rootreturn view }override fun onDestroyView() {super.onDestroyView()_binding = null }
  • 更改所有視圖引用以使用綁定類實例,而不是直接使用控件id
  • 示例

    //tv.text = "盧本偉" //刪掉這行 binding.tv.text = "盧本偉"

    后話

    developer#doc:從 Kotlin 合成遷移到 Jetpack 視圖綁定

    總結(jié)

    以上是生活随笔為你收集整理的kotlin-android-extensions过时了,迁移到ViewBinding的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。