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

18

我在开发 Android 的 4x1 小部件时遇到了困难。

这是 appprovider。

<?xml version="1.0" encoding="utf-8"?> <appwidget-provider
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"
    android:minHeight="72dp"
    android:initialLayout="@layout/main" />

这是主要的main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="320dp"
    android:layout_height="100dp"
    android:gravity="center_vertical|center_horizontal"
    android:orientation="horizontal"> 
//content goes here
</LinearLayout>

我可以看到小部件,但大小为4x2。我困惑的是为什么我无法拥有4x1小部件大小?

谢谢


你尝试将LinearLayout的高度设置为较小的值(或者更好的是,设置为“fill_parent”)了吗?该维度大于您的“最坏情况单元格大小”72dp,因此也许启动器在内部说“这不适合一个单元格,让我们使用两个单元格代替”。 - user658042
是的,我尝试了fill_parent。但小部件仍然保持4x2... - stuckedoverflow
清理并重新构建项目后,现在它可以工作了 :) 新手错误... - stuckedoverflow
3个回答

38

4
在ICS中,它必须显示为4x2。
要更正这个问题,在'res'文件夹下创建一个名为'xml-v14'的文件夹:
在此处定义您的小部件appwidget-provider,并使用相同的xml名称。只需将minHeight更改为40dp即可。
这将纠正错误。
希望这可以帮助您。

2
我认为问题出在这里:

android:layout_height="100dp"

如果你将它(layout_height)固定在这个尺寸(100dp),那么你无法将小部件的大小改变为比它设置的75dp更小。
<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="320dp"
        android:layout_height="100dp"
       android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="horizontal"> 
    //content goes here
    </LinearLayout>

通常最好在答案的文本中描述您所做的更改。用注释标记代码并保留模糊的文本会使其难以跟踪。 - David
我已经完成了,谢谢。 - Mori

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接