小工具minHeight =“72dp”给出2行高度

时间:2013-01-16 11:39:12

标签: android android-widget

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

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

按照我在许多帖子中看到的公式,高度=(行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块高。

2 个答案:

答案 0 :(得分:16)

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

android:minHeight="40dp"

类似地,正确的宽度(对于4列/块)是:

android:minWidth="250dp"

我找到了基于这三个问题的答案(我应该先检查一下......)


原因由Artiom Chilaru在this answer

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

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

答案 1 :(得分:0)

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