为什么我的主屏幕小部件需要两行而不是一行?

时间:2013-03-22 21:38:11

标签: android android-widget

因此,我阅读了小部件大小并创建了一个250dpX72dp小部件,期望它占用一行4列。在我的2.2设备上它确实显示了预期,但在我的4.2设备上它突然占用了4x2。

我认为每个细胞的大小计算为(细胞* 74) - 2.

小部件定义如下:

 <?xml version="1.0" encoding="utf-8"?>
 <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialLayout="@layout/widget"
    android:minHeight="72dp"
    android:minWidth="250dp"
   />

3 个答案:

答案 0 :(得分:3)

您需要从API 11开始应用不同的公式;根据{{​​3}}其(70 * n) - 30;所以这意味着你应该将minHeight设置为40.你可以在不同的资源文件夹(valuesvalues-v11)中为高度创建两个资源,这样你就可以根据旧的指定高度values/<insert fancy name here>.xml中的公式和values-v11/<insert fancy name here>.xml

中新公式的高度

请注意,您还应该考虑API 15中的边距,这是以类似的方式完成的:documentation

但是新设备的尺寸似乎还有一个怪癖,其中250dp需要3列而不是4列。

另见http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout

答案 1 :(得分:0)

答案 2 :(得分:0)

考虑到Stackoverflow上的多个问题,我并不是唯一一个感到困惑的人。

Google似乎确实改变了 - 非常显着 - 小部件大小的计算。

How to make 4x1 size widget on Android homescreen?