【发布时间】:2010-04-30 15:04:35
【问题描述】:
我正在创建自定义键盘布局。 SDK 允许更改一行中键的宽度(如在ThickButtons 中),但理想情况下,我希望能够同时改变一行中键的高度和宽度(并且仍然让键占据所有可用空间。 )
另一种看待这个问题的方式是,我想让一些键位于多个连续行中。任何想法都会有所帮助。谢谢。
【问题讨论】:
我正在创建自定义键盘布局。 SDK 允许更改一行中键的宽度(如在ThickButtons 中),但理想情况下,我希望能够同时改变一行中键的高度和宽度(并且仍然让键占据所有可用空间。 )
另一种看待这个问题的方式是,我想让一些键位于多个连续行中。任何想法都会有所帮助。谢谢。
【问题讨论】:
所有键的“宽度”和“高度”都是最小键宽度/高度的倍数吗?如果是这样,您可以根据需要嵌套水平和垂直LinearLayouts 来描述键盘,使用 layout_weight 来制作双宽或双高键。
例如,如果我查看工作站的键盘,它本质上是一个 5x4 网格的键,最右边一列有一个双高的“+”和“enter”键,以及一个双宽的 0在左下角的位置(相当标准的配置,请在本说明中参考您自己的配置)。我可以为 0 {numlock,7,4,1} 和 {/,8,5,2} “顶部”的每一列进行垂直线性布局。接下来可以将它们放入水平线性布局中,以对所有 8 个键进行分组。该组件可以在另一个垂直布局中与“0”按钮组合,重量为“4”到 8 键组件,“1”到 0 键。让我们将此完整的 9 键组件称为组件 A。现在您可以为 {*,9,6,3} 和 {-,+,enter} 进行垂直线性布局。在其中的第二个中,为每个 + 和 enter 键赋予 2 的权重。最后使用水平线性布局将程序集 A 与其他 2 个垂直布局分组。
【讨论】: