我在为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小部件大小?
由于
答案 0 :(得分:34)
我不认为这是一个新手的错误..我有一个大小为1x1的appWidget。我把它设置为72dp x 72dp,它工作正常..但似乎谷歌改变了小部件尺寸大小公式
(cells * 74) - 2
到
(cells * 70) - 30
所以现在我的小部件的默认大小必须是40dp x 40dp ..
答案 1 :(得分:4)
在ICS中,它必须显示4x2。
要更正此问题,请在'res'名称'xml-v14'中创建一个文件夹:
在此处定义具有相同xml名称的widget appwidget-provider。只需将minHeight更改为40dp。 这将纠正错误。
希望这对你有所帮助。
答案 2 :(得分:1)
我认为,问题出在这里:
<块引用>android:layout_height="100dp"
如果您将其 (layout_height) 修复为此尺寸 (100dp),您将无法更改 Widget 尺寸小于您设置的 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>