Два стола с одинаковой высотой строки (Android)
У меня есть представление с двумя таблицами. Один используется в качестве столбца заголовков (статический), а другой - для данных. (Линейная планировка, горизонтальная).
Мне нужно как-то прочитать высоту каждой строки в таблице данных и сделать так, чтобы строки в таблице заголовков были на одной высоте...
2 ответа
Решение
Используйте этот код ниже, чтобы прочитать ваш View Height:
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//TO remove listener
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
int height = view.getHeight();
int width = view.getWidth();
}
});
Это не очень хорошая идея, чтобы контролировать высоту на основе высоты другого вида. Лучше использовать макет таблицы
пример
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:text="@string/table_layout_4_open"
android:padding="3dip" />
<TextView
android:text="@string/table_layout_4_open_shortcut"
android:gravity="right"
android:padding="3dip" />
</TableRow>
<TableRow>
<TextView
android:text="@string/table_layout_4_save"
android:padding="3dip" />
<TextView
android:text="@string/table_layout_4_save_shortcut"
android:gravity="right"
android:padding="3dip" />
</TableRow>
</TableLayout>
Выход
Вы можете реализовать аналогичным образом