【问题标题】:AppWidget issue on tablets平板电脑上的 AppWidget 问题
【发布时间】:2015-03-01 06:00:53
【问题描述】:

我设计了一个 appwidget,它应该占用 4 个单元格的宽度和 1 个单元格的高度。

根据docs,这应该是一个 4x1 应用小部件:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="250dp"
android:minHeight="40dp"
android:updatePeriodMillis="90000000"
android:previewImage="@drawable/widgetlayout_2"
android:initialLayout="@layout/main" >
</appwidget-provider>

注意: @layout/main 的宽度和高度为 match_parent。它与appwidget 的大小无关,这就是为什么我不发布mainXML-code

Everythink 在手机上运行良好,可能是因为您无法在主屏幕上旋转它们。

但在平板电脑上(使用 Nexus 10 XHDPI 2560x1600 API16 测试)appWidget 仅使用 3x1 进行测量!

堆栈上有一个类似的question,没有答案。也许有人得到了更新。

下一个问题是,在横向上,我的 appwidget 设计符合预期。但是在人像中,我的appWidget在主屏幕上缩小了,布局混乱了?有人知道如何防止这种情况发生吗,我唯一的方法是在我的项目中定义一个layout-xlarge-port 文件夹,并在其中为平板电脑定制一个端口模式的布局?

感谢任何帮助!

【问题讨论】:

  • 您想要的单元格尺寸是多少? 4x1?
  • @waqaslam 嘿,我没有指定它们,我让操作系统选择宽度和高度的绝对 dp,我只希望它们具有 4x1,这就是为什么我声明 min-width 250dp 和 @ 987654333@40dp!

标签: android android-layout android-appwidget


【解决方案1】:

要制作 4x1 单元格小部件,您需要使用以下公式指定 minWidthminHeight

dpSize = (细胞数 * 74) – 2

所以从数学上来说,结果应该是:

android:minWidth="294dp"
android:minHeight="72dp"

这些尺寸会将小部件的默认安装设置为 4x1 单元格配置。在平板电脑(可能有超过 4 个水平单元格)上安装小部件也将遵循与手机中显示的相同尺寸。

关于您的第二个问题,您可以定义以下内容来限制您的小部件的最小可调整大小的宽度和高度:

//for example this will set the minimum allowed re-size of 2x2 cells
android:minResizeWidth="146dp"
android:minResizeHeight="146dp"
android:resizeMode="horizontal|vertical"

我认为最好不要将小部件的单元格分布定义为超过 4x4 个单元格,因为这种划分很容易适用于手机和平板电脑,并且可以让用户重新调整大小。但是,如果您希望平板电脑有更大的细胞分裂,那么我建议您在文件夹中定义多个appwidget-provider,并在与设备屏幕密度相关的文件夹中使用自定义细胞配置。例如:

res
|-xml          //for ordinary screens, like phones and phablets
|-xml-w820dp   //for devices with minimum with of 820dp, like hi-res tablets and etc.

【讨论】:

  • 我有一个问题,当 minHeight 为 72dp 时,为什么我将 minResizeHeight 设置为 146dp ?这对我来说没有意义。不应该也是72dp吗? Update 啊,明白了,我没有读到这是 2x2 单元的示例。我会测试它并给你反馈。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 2014-03-06
  • 1970-01-01
相关资源
最近更新 更多