我嘗試在我的應用程式中實作以下片段。
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.jiangdg.ausbc.base.CameraFragment
import com.jiangdg.ausbc.widget.AspectRatioTextureView
import com.jiangdg.ausbc.widget.IAspectRatio
class DemoFragment : CameraFragment() {
private lateinit var mViewBinding: DemoFragmentBinding
override fun initView() {
super.initView()
}
override fun getCameraView(): IAspectRatio {
return AspectRatioTextureView(requireContext())
}
override fun initData() {
super.initData()
}
override fun getCameraViewContainer(): ViewGroup {
return mViewBinding.cameraViewContainer
}
override fun getRootView(inflater: LayoutInflater, container: ViewGroup?): View {
mViewBinding = DemoFragmentBinding.inflate(inflater, container, false)
return mViewBinding.root
}
override fun getGravity(): Int = Gravity.TOP
}
但是 android studio 無法識別 DemoFragmentBinding:我收到以下錯誤:
Unresolved reference: DemoFragmentBinding
我認為問題出在 XML 上,我嘗試使用 android Docs 上的那個
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" >
<TextView android:id="@ id/DemoFragment" />
<ImageView android:cropToPadding="true" />
</LinearLayout>
但這并沒有改變任何東西
我嘗試了幾個在互聯網上找到的 xml,但沒有一個有效。我不確定 xml 是否是問題所在,我的問題可能很愚蠢,但有人能給我一個好的方向嗎?
編輯:我忘了解釋:我已經把它放在我的應用程式 gradle 中了
android {
buildFeatures {
dataBinding true
viewBinding = true
}
uj5u.com熱心網友回復:
首先:
android {
buildFeatures {
dataBinding true
viewBinding = true
}
這是不正確的,viewBinding 是 dataBinding 的一部分,所以同時啟用“兩者”(分別)是......奇怪,根據你的標題判斷你只想使用 viewBinding,所以將上面的代碼更改為:
android {
buildFeatures {
viewBinding true
}
然后,如果你同步你的專案,清理并重建它,你應該能夠在你的片段/活動中參考系結變數(有時系結變數不會在構建后創建,這就是你需要清理和重建的原因)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535460.html
標籤:安卓XML科特林安卓片段android-viewbinding
