Я пытаюсь программно изменить высоту и ширину элемента ListView, но получаю сообщение «val cannot be reassigned error», не могли бы вы сказать мне, что здесь нельзя переназначить точное значение val и как я могу, наконец, установить высоту и ширина для списка - мой пользовательский адаптер?

    class Game6Adapter(
    private val mContext: Context,
    private val resourceLayout: Int,
    private val items: ArrayList<Drawable>
) : ArrayAdapter<Drawable>(mContext, resourceLayout, items) {

    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
        var v: View? = convertView

        var vi: LayoutInflater = LayoutInflater.from(mContext)
        v = vi.inflate(resourceLayout, null)


        val p = getItem(position)


        var imageView = v!!.findViewById(R.id.game_6_item_image) as ImageView
        imageView.setImageDrawable(items[position])

        var layoutParams = parent.layoutParams
        imageView.height = (parent.height * 0.1).toInt() // val cannot be reassigned
        imageView.width = (parent.height * 0.1).toInt()  val cannot be reassigned
        imageView.requestLayout()


        return v!!
    }
}
0
Danila says Reinstate Monica 27 Окт 2019 в 18:34

1 ответ

Фрагментарный ответ на ваш вопрос:

Поля height и width внутри imageView являются неизменяемыми (val):

var imageView = v!!.findViewById(R.id.game_6_item_image) as ImageView

Поскольку я не знаю и не вижу реализации класса/интерфейса ImageView, я не могу сказать, как добиться изменения.

0
Neo 29 Окт 2019 в 12:29