일부 TableRows를받는 TableLayout이 있습니다. 내가하려는 것은 행의 요소 크기를 조정하여 모든 요소가 동일한 상대 크기로 전체 행을 채우도록하는 것입니다.레이아웃 분배기 크기를 얻는 방법?
자원 ::
의 TableView :
<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>
드로어 블/사진 vertical_divider @ :
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="1dip" />
<solid android:color="@color/colorMediumGrey" />
</shape>
레이아웃/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>
TableRow 레이아웃의 각 항목에 동일한 크기를 갖는 완벽한 솔루션은 각 항목에 대해 동일한 가중치를 정의하는 것입니다. 예 :
<include layout="@layout/cell_attribute"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
하지만 문제는 행에 각각 동일한 수의 항목이 없으면 항목의 너비가 달라집니다. 그래서 항목 및 행을 TableView에 동적으로 인스턴스화하기 때문에 해결 방법은 행당 최대 항목 수 (열 수)에 따라 행의 각 항목 크기를 계산하는 것입니다. 유일한 문제는 레이아웃에서 디바이더의 정확한 상대 크기를 파악할 수 없다는 것입니다.
다시 원래의 질문 : 레이아웃 분배기 크기를 얻는 방법?