小部件minHeight =“72dp”给出2行高度

我正在创build一个基本的窗口小部件,除了显示一些静态信息之外什么都不做(这是我的一个教程演示练习)。

我的小部件提供程序XML看起来像

<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialKeyguardLayout="@layout/widget" android:initialLayout="@layout/widget" android:minHeight="72dp" android:minWidth="294dp" android:updatePeriodMillis="60000" > <!-- NOTE 1: --> <!-- Widget sizing is done in terms of "blocks" on the screen. --> <!-- Each block is 74dp square. --> <!-- NOTE 2: --> <!-- OLD & WRONG FORMULA used to be: size = (n*74) - 2 --> <!-- NOTE 3: --> <!-- NEW FORMULA has been UPDATED: size = (n*70) - 30 --> <!-- Based on new formula, the size should be 40dp. --> </appwidget-provider> 

我想要一个4×1的小部件。 即1排高。

按照我在许多post中看到的公式,height =(rows x 74)-2,我得到了一个72dp的minHeight数字,它应该为我提供1行/块的部件高度。

安装4.1.1给了我一个4×2的小部件。


从那以后,我想也许我的布局迫使小部件比预期的更大。 所以我从布局文件中删除了一切:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout> 

仍然是4×2 – 2块高。

Solutions Collecting From Web of "小部件minHeight =“72dp”给出2行高度"

正确的高度(1行/块)是:

 android:minHeight="40dp" 

同样,正确的宽度(4列/块)是:

 android:minWidth="250dp" 

我find了这三个问题的答案(我应该先检查一下…)

  • 使用TouchWiz启动器的ICS电话上不应用Widget边距?

  • Android 4×1小部件大小

  • 如何在Android主屏幕上制作4×1大小的小部件?


Artiom Chilaru在这个答案中给出了原因

  • 该公式已经改变为大小=(n * 70) – 30

他给出了App Widgetdevise指南的链接。

尝试从布局文件中删除android:layout_margin="8dp"