小部件错误的网格大小

问题描述:

我写了一个应该是4x2主屏幕块的小部件。这是和了minHeight minwidth,与按照目前的“应用的Widget设计指南”页面是小部件错误的网格大小

android:minWidth="250dp" 
android:minHeight="110dp" 

以及垫高从dimens.xml应用,如果系统版本低于冰淇淋三明治

在我的Nexus 4(xhdpi,Jellybean 4.2.1),这个小部件是4x2。在模拟器(hdpi,Gingerbread 2.3.3)上,这个小部件是4x2。然而,在我的Nexus 7(hdpi,Jellybean 4.2.1)上,这个小部件是3x2。我不能为了我的生活找出为什么或如何解决它。有什么想法吗?

拉斯沃格尔在this Home Screen Widget tutorial写道:

作为计算规则应当定义与式窗口小部件的大小:((列/行的数量)* 74) - 2这些是设备独立像素和-2用于避免舍入问题。

编辑:显然Vogel从old Widget API documentation得到它(向下滚动到中期页面以查看参考)。

基于该测定,对于4个细胞的宽度和2个细胞的高度,使用294 X 146浸:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="294dip" android:minHeight="146dip" 
    android:updatePeriodMillis="0" android:initialLayout="@layout/some_layout" /> 
+0

至于你说,294x146将基于过时的文档上。根据新文档,我已经使用了基于新文档的4x2小部件的正确测量,并且小部件在除Nexus 7之外的所有设备上注册为4x2,其中注册为3x2 – Nick

+0

Nexus 7会发生什么情况你使用旧的测量? –

+0

嗯,我知道它会起作用,因为我在旧版本的这些小部件上使用了旧测量。然而,以旧的测量结果为例,1x1切换小部件在我的Nexus 4上测量为2x2。新的测量应该用于冰淇淋三明治,以及操作系统应用其自己的填充的地方。 Nexus 7正在运行4.2,因此应该使用新的测量。如果检测到操作系统为3.x或更低,我有一个填充自动应用于小部件 – Nick