私はいくつかのTableRowを受け取るTableLayoutを持っています。私がしようとしているのは、すべての要素が同じ相対サイズの行全体を埋めるように、行の要素のサイズを変更することです。レイアウトディバイダのサイズを取得するには?
リソース::
のtableView:レイアウト/ cell_attribute(要素のレイアウト)@
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/attributesTableLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TableRow
android:divider="@drawable/vertical_divider"
android:dividerPadding="10dp"
android:showDividers="middle"
android:visibility="gone"
tools:visibility="visible">
<include layout="@layout/cell_attribute" />
<include layout="@layout/cell_attribute" />
<include layout="@layout/cell_attribute" />
<include layout="@layout/cell_attribute" />
</TableRow>
</TableLayout>
:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="1dip" />
<solid android:color="@color/colorMediumGrey" />
</shape>
:描画可能/ vertical_divider @
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/attributeLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/backgroundFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#008888"
android:visibility="visible" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/attributeIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tint="@color/white"
android:src="@mipmap/attribute_icon_pet"/>
<TextView
android:id="@+id/attributeValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="Dog"/>
</LinearLayout>
</FrameLayout>
私は、TableRowレイアウト上の各アイテムに等しいサイズを持つ完璧なソリューションは、各アイテムに等しい重みを定義することです。たとえば、行の数がそれぞれの項目の数と同じでない場合、項目の幅が異なります。 したがって、アイテムと行をTableViewに動的にインスタンス化するので、解決策は、行ごとのアイテムの最大数(列数)に基づいて行の各アイテムのサイズを計算することです。唯一の問題は、レイアウト上のディバイダの正しい相対的なサイズを把握できなかったことです。 レイアウトディバイダのサイズを取得する方法:だから、戻って私の元の質問に
?