У меня есть recyclerview
, который является просто горизонтальным списком кнопок.Я пытаюсь создать следующее поведение:
Если общая ширина всех комбинированных кнопок меньше общей ширины экрана, установите для ширины каждой кнопки значение (screenWidth / количество кнопок).
Я тестирую некоторый базовый код для получения / установки ширины кнопок, как в моем adapter
классе:
override fun onBindViewHolder(holder: TabViewHolder, position: Int) {
Log.d("TEST-APP","Button Width: " + holder.button.width.toString())
holder.button.width = 1080
Log.d("VED-APP","New Button Width: " + holder.button.width.toString())
holder.button.text = items[position].first
holder.button.setOnClickListener {
(context as MainActivity).updateCurrentImageLayout(items[position].second)
}
}
Странно то, что этот код действительно меняет ширинуПри нажатии кнопки на 1080 значения обеих функций Log
до и после установки ширины кнопки равны 0.
Как узнать фактическую ширину кнопки?
Вот мой макет, который определяет один столбец в моем recyclerview
:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<Button
android:id="@+id/tabButton"
android:layout_width="match_parent"
android:minWidth="120dp"
android:layout_height="match_parent"
android:text="Unset-Button-Text"/>
</android.support.constraint.ConstraintLayout>