如何创建一个没有嵌套权重的常规,可调整大小的网格?

时间:2013-06-10 12:12:28

标签: android android-layout android-linearlayout relativelayout android-tablelayout

我有一个最简单的布局:数字垫。

我想创建一个包含3 x 4网格按钮的片段。布局应自动调整数字键盘的大小以填充可用空间。

我已经了解到,GridLayout无法完成任务,而TableLayout / TableRow或嵌套LinearLayouts意味着嵌套权重,出于性能原因,也不鼓励这样做。 RelativeLayout也不起作用,因为这需要至少一个具有给定尺寸的按钮。

那么,有没有一种干净的方法来创建一个可以调整大小以填充其父级的常规网格?

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

您需要一个自定义复合控件。

检查以下链接:

http://developer.android.com/guide/topics/ui/custom-components.html#compound

使控件填满可用空间。让它有12个按钮。根据它们的位置和可用空间计算它们的大小和位置。

根据您的需要,您可能还需要覆盖上面文档前面“完全自定义组件”部分中定义的onMeasure()和onLayout()。