1 回答
TA贡献1848条经验 获得超10个赞
你不能只使用R.id.imageView,因为那是integerid 不是ImageView对象。所以它setImageBitmap()在 上找不到方法Integer。
你有两种方式
1:通过使用 findViewById()
class GalleryFragment : Fragment() {
private lateinit var viewOfLayout: View
private lateinit var imageView: ImageView
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
viewOfLayout = inflater.inflate(R.layout.fragment, container, false)
return viewOfLayout
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
imageView = view.findViewById(R.id.imageView)
imageView.setImageBitmap(bitmap) // set bitmap anywhere
}
}
2:通过使用 kotlinx.android.synthetic
class GalleryFragment : Fragment() {
private lateinit var viewOfLayout: View
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
viewOfLayout = inflater.inflate(R.layout.fragment, container, false)
viewOfLayout.imageView.setImageBitmap(bitmap) // set bitmap anywhere
return viewOfLayout
}
}
如果在这种情况下没有自动导入 imageView,则手动导入。
import kotlinx.android.synthetic.main.fragment.view.*
在第二种方法中,apply plugin: 'kotlin-android-extensions'如果未在应用程序级别build.gradle文件的末尾应用,则必须应用插件。
添加回答
举报