Android findViewById()返回从数据绑定创建的空视图
出于某种原因,当我使用findFragmentById()引用使用数据绑定创建的SeekBar视图时,它返回空对象。请问我怎样才能得到这个视图的参考 这是我的seekBar:Android findViewById()返回从数据绑定创建的空视图,android,kotlin,Android,Kotlin,出于某种原因,当我使用findFragmentById()引用使用数据绑定创建的SeekBar视图时,它返回空对象。请问我怎样才能得到这个视图的参考 这是我的seekBar: <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="match_parent">
</SeekBar>
</layout>
UtilClass在此处实例化:
class MainActivity : AppCompatActivity() {
private lateinit var mUtilClass: UtilClass
....
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mUtilClass = UtilClass(requireActivity())
retainInstance = true
var fm = fragmentManager
var fragment: Fragment? = fm!!.findFragmentById(R.id.seek_container)
if (fragment == null) {
fragment = SeekBarFragment.newInstance()
fm.beginTransaction()
.add(R.id.seek_container, fragment)
.commit()
}
}
class SeekBarFragment: Fragment() {
companion object {
fun newInstance(): SeekBarFragment {
return SeekBarFragment()
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val binding: SeekbarBinding = DataBindingUtil.inflate(inflater, R.layout.seekbar, container, false)
...
}
在此处创建绑定:
class MainActivity : AppCompatActivity() {
private lateinit var mUtilClass: UtilClass
....
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mUtilClass = UtilClass(requireActivity())
retainInstance = true
var fm = fragmentManager
var fragment: Fragment? = fm!!.findFragmentById(R.id.seek_container)
if (fragment == null) {
fragment = SeekBarFragment.newInstance()
fm.beginTransaction()
.add(R.id.seek_container, fragment)
.commit()
}
}
class SeekBarFragment: Fragment() {
companion object {
fun newInstance(): SeekBarFragment {
return SeekBarFragment()
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val binding: SeekbarBinding = DataBindingUtil.inflate(inflater, R.layout.seekbar, container, false)
...
}
您应该指定父布局视图
覆盖创建视图(
充气机,
容器:视图组?,
savedInstanceState:捆绑?
):查看{
变量v:视图=充气机。充气(R.layout.seekbar,container,false)
var seekbar=v.findViewById(R.id.seekbar)
返回v
}
您的UtilClass在哪里实例化?很抱歉,我将其添加到主要问题中,但我创建了带有数据绑定的视图:val binding:SeekbarBinding=DataBindingUtil.inflate(充气器,R.layout.seekbar,容器,false)