Динамическое создание таблицы с кнопками с использованием Kotlin для Android - PullRequest
0 голосов
/ 06 августа 2020

Конечная цель - создать серию кнопок (в настоящее время в таблице), которые будут скрывать / показывать строки, содержащие фиксированные данные между каждой.

Я не уверен, осуществим ли мой подход или оптимален, и я не привязан к этому методу. У меня мало опыта работы с 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 связывает каждую сгенерированную кнопку со следующей строкой данных.

1 Ответ

0 голосов
/ 14 августа 2020

В конце концов, я решил go с RecyclerView, который идеально подходит для моих целей. TableLayout стал громоздким и неудобным при форматировании, поэтому я отказался от проекта и перезапустил его с помощью RecyclerView.

...