我正在尝试创建一个包含3列和4行的TableLayout
,我需要所有行都具有相同的高度。
我尝试了很多东西,但结果总是一样的。第三行,即只有两个TextView的行,总是最终成为高度较低的行。
这是布局的xml:
<TableLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4">
<TableRow
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:weightSum="7">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:layout_weight="2"
android:text="Tipo Venta"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"/>
<Spinner
android:id="@+id/tipoVentaSpinner"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
android:textColor="@color/secondary_text"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:weightSum="7">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:layout_weight="2"
android:text="Tipo Pago"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
/>
<Spinner
android:id="@+id/tipoPagoSpinner"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
android:textColor="@color/secondary_text"
android:touchscreenBlocksFocus="true"/>
</TableRow>
<TableRow
android:id="@+id/clienteRow"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:weightSum="7">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:layout_weight="2"
android:text="Cliente"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"/>
<TextView
android:id="@+id/clienteTextView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
android:textColor="@color/secondary_text"/>
</TableRow>
<TableRow
android:id="@+id/rucRow"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:weightSum="7">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:layout_weight="2"
android:text="RUC"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"/>
<EditText
android:id="@+id/rucEditText"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:inputType="number"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
android:textColor="@color/secondary_text"/>
<ImageButton
android:id="@+id/buscarClieImageButton"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@android:drawable/ic_menu_search"/>
</TableRow>
</TableLayout>
上述TableLayout
是另一种布局的一部分,这就是为此指定layout_weight
为4的原因。
你知道造成这种行为的原因是什么吗?
感谢。
答案 0 :(得分:1)
好的,我很高兴,因为你选择了我帮忙。我认为它没有显示相同的高度,因为第三行没有Spinner
。默认高度Spinners
可能大于TextViews
,而您的第三行最终只有两个TextViews
。
所以你可以做一个小技巧,通过这样做可视地显示与第三行相同的第三行高度
<TableLayout
...
android:weightSum="4.5">
<TableRow
android:layout_weight="1">...</TableRow>
<TableRow
android:layout_weight="1">...</TableRow>
<TableRow
android:layout_weight="1.5">...</TableRow>
<TableRow
android:layout_weight="1">...</TableRow>
</TableLayout>
如果它确实没有满足您的要求,那么您可以轻松增加或减少weightsum
的{{1}}并为行提供匹配的TableLayout
属性,使其看起来类似大小。但我认为上述相同的解决方案对您有用。希望这对你有所帮助。
答案 1 :(得分:0)
尝试将每行的所有元素高度设置为wrap_content而不是match_parent。