11

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

我的小部件提供程序 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>

我想要一个 4x1 的小部件。即 1 行高。

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

安装在 4.1.1 上给了我一个 4x2 的小部件。


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

<?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>

仍然是 4x2 - 2 块高。

4

2 回答 2

17

使用的正确高度(对于 1 行/块)是:

android:minHeight="40dp"

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

android:minWidth="250dp"

我根据这 3 个问题找到了答案(我应该先检查一下……)


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

  • 公式已更改为 size = (n*70) - 30

他提供了App Widget Design Guidelines的链接。

于 2013-01-16T11:50:07.157 回答
0

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

于 2013-01-16T11:42:47.563 回答