Конечная цель - создать серию кнопок (в настоящее время в таблице), которые будут скрывать / показывать строки, содержащие фиксированные данные между каждой.
Я не уверен, осуществим ли мой подход или оптимален, и я не привязан к этому методу. У меня мало опыта работы с Kotlin / Android, но вот пример того, как выглядит жестко закодированный образец:
<TableLayout
android:id="@+id/superTable"
android:layout_width="match_parent"
android:layout_height="0sp"
android:layout_marginTop="0sp"
android:stretchColumns="1"
android:visibility="visible"
app:layout_constraintTop_toBottomOf="@+id/chem2Table">
<FrameLayout
android:layout_height="wrap_content">
<Button
android:id="@+id/superTableButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16sp"
android:layout_marginLeft="16sp"
android:layout_marginTop="0sp"
android:onClick="superChemical1"
android:text="@string/button_chem3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chem2Table" />
</FrameLayout>
<TableRow
android:id="@+id/superRow1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone">
<TextView
android:id="@+id/sr1c1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#b0b0b0"
android:padding="5sp"
android:text="@string/chem3c1"
android:textColor="#000"
android:textSize="12sp" />
</TableLayout>
и мой метод скрытия / отображения:
fun superChemical1(view: View) {
val chemId = R.id.superRow1
val chemVisibility = findViewById<TableRow>(chemId)
if(chemVisibility.visibility == View.VISIBLE) {
chemVisibility.visibility = View.GONE
} else {
chemVisibility.visibility = View.VISIBLE
}
}
The Целью было бы воспроизвести ту же функциональность, при этом вся таблица динамически генерируется из внешнего источника. Это будет использовать метод Dynami c onClick, который может получить идентификатор нажатой кнопки, а затем скрыть / показать следующую строку, которая содержит связанные данные.
Главное, что я не уверен, как это сделать sh связывает каждую сгенерированную кнопку со следующей строкой данных.