1 回答

TA貢獻1848條經(jīng)驗 獲得超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文件的末尾應用,則必須應用插件。
添加回答
舉報