繁体   English   中英

Android:Widget需要太多的地方

[英]Android: Widget takes too much place

我的小部件大小遇到了一个奇怪的问题。 我决定开发一个支持ldpi,mdpi,large-mdpi和hdpi屏幕的简单小部件。 起初我创建了xml / widget.xml,我在其中定义了以下内容:

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

所以我希望我的小部件将为所有支持的屏幕采用3x2单元格。 然后我设计了几个布局,每个屏幕类型一个 - ldpi,mdpi,large-mdpi和hdpi - 其中:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/Widget" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    ... 
</RelativeLayout>

所以我希望小部件大小适合所有屏幕的3x2单元格,而不是更多,而不是更少。 但是目前当我在模拟器(以及真实设备)上运行它时,我发现我的小部件占用了所有支持屏幕的一半以上的屏幕 - 4x3单元格,如果说最大尺寸是4x4单元格(如下所述: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html#sizes )。 即使我将在我的窗口小部件布局中定义精确的layout_width和layout_height,它仍将需要4x3单元格,只是它的可见部分将具有另一个大小。

好吧,看起来像模拟器并不总是刷新我的应用程序,这就是为什么我看到我的旧尺寸而不是新的。 我的朋友还说,如果使用startActivityForResult,模拟器通常不会更新应用程序。 因此,在这种情况下,最好手动重启widget。 希望对别人有帮助:)

来自http://developer.android.com/guide/topics/appwidgets/index.html

由于主屏幕的布局方向(因此,单元格大小)可能会发生变化,因此根据经验,您应该假设单元格高度和宽度的最坏情况单元格大小为74像素。 但是,必须从最终维度中减去2才能解决像素计数中出现的任何整数舍入错误。 要以与密度无关的像素(dp)查找最小宽度和高度,请使用以下公式:(单元格数* 74) - 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM