在我的手机上安装后(也发生在模拟器上),Widget只有1x1个单元格。
我已经尝试完全卸载应用程序,然后再次安装它,但是当我创建它的实例时,窗口小部件仍然只有1x1个单元格。
有什么想法吗?
这是我的提供商信息XML文件(callernator_widget_provider_info.xml):
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android">
android:minWidth="294dp"
android:minHeight="294dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/widgetmain"
</appwidget-provider>
这是布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="32dp"
android:text="Bertus van Zyl" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="32dp"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="fill_parent"
android:layout_height="32dp"
android:text="Button" />
</LinearLayout>
这是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.callernator"
android:versionCode="1"
android:versionName="1.0">
<uses-permission
android:name="android.permission.READ_CONTACTS">
</uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".CallernatorWidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/callernator_widget_provider_info" />
</receiver>
<activity android:name=".CallernatorActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
答案 0 :(得分:5)
你有结束括号&gt;在小部件提供程序中的错误位置。它应该在声明的最后,而不是在第一行的末尾。
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="294dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/widgetmain">
</appwidget-provider>
我有完全相同的问题 - 小部件总是出现在1个单元格中。在我的情况下,原因是在小部件提供程序的url中缺少http://。
请记住:在您的设备/模拟器上重新添加小部件后,小组件大小更改将生效。
答案 1 :(得分:0)
首先创建窗口小部件布局xml文件..
示例::我创建widget_layout.xml
`
<RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:layout_marginTop="1dp"
>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center_horizontal"
android:text="Title"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/white"
android:typeface="serif" />
</RelativeLayout>
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="1dp"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:orientation="vertical" >
<TextView
android:id="@+id/update"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/relativeLayout2"
android:gravity="center"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/black"
android:typeface="serif" />
</LinearLayout>
`
在添加callernator_widget_provider_info.xml ...
之后机器人:initialLayout = “@布局/ widget_layout”
答案 2 :(得分:0)
在Android 4.0及更高版本的本机系统上,如果您的manifest.xml有action android:name="android.intent.action.CREATE_SHORTCUT"
,则会出现1x1个单元格。
action android:name="android.intent.action.CREATE_SHORTCUT"
是在长按主屏幕时添加快捷方式。
这两个特征相互冲突。