Android Studio中如何实现TableLayout内按钮跨两列拉伸显示?
解决方案
实现TableLayout内按钮跨列拉伸只需要调整两个属性即可:
- 给根TableLayout添加列拉伸属性,让所有列可以自动适配屏幕宽度
- 给需要跨列的按钮添加
android:layout_span属性,指定要跨的列数
修改后的代码示例
首先修改TableLayout节点:
<TableLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_horizontal" android:stretchColumns="*" android:shrinkColumns="*">
然后给需要跨列的按钮添加跨列属性,同时把按钮的固定宽度75dp改成wrap_content避免拉伸失效,比如要做跨2列的0按钮:
<TableRow android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="horizontal"> <!-- 跨2列的0按钮示例 --> <Button android:id="@+id/btn0" android:layout_width="wrap_content" android:layout_height="75dp" android:layout_margin="7dp" android:layout_span="2" android:background="@drawable/buttons_white" android:text="0" android:textColor="@color/black" android:textSize="24sp" app:backgroundTint="@null" /> <Button android:id="@+id/btnDot" android:layout_width="wrap_content" android:layout_height="75dp" android:layout_margin="7dp" android:background="@drawable/buttons_white" android:text="." android:textColor="@color/black" android:textSize="24sp" app:backgroundTint="@null" /> <Button android:id="@+id/btnEqual" android:layout_width="wrap_content" android:layout_height="75dp" android:layout_margin="7dp" android:background="@drawable/buttons_white" android:text="=" android:textColor="@color/black" android:textSize="24sp" app:backgroundTint="@null" /> </TableRow>
注意事项
android:layout_span的数值对应你要跨的列数,计算器界面一般是4列布局,0按钮跨2列就设为2即可- 不要给需要拉伸的按钮设置固定宽度,否则拉伸属性会失效,高度可以保留固定值保证所有按键高度一致
stretchColumns="*"表示所有列都可以拉伸,也可以指定具体列序号,比如stretchColumns="0,1,2,3"效果和*一致
内容的提问来源于stack exchange,提问作者HttpBelleDefi
相关产品推荐
相关产品推荐

