更改默认小部件大小

Posted

技术标签:

【中文标题】更改默认小部件大小【英文标题】:Change default widget size 【发布时间】:2017-01-23 10:11:25 【问题描述】:

我正在开发一个 android 屏幕小部件。默认大小(如果我将 Widget 从 Widget-List 拖放到我的主屏幕上)设置为 3x3,但我没有找到可以更改它的位置。谁能解释我如何在另一个值上设置默认值?

【问题讨论】:

请看这个question。 【参考方案1】:

您在 appwidget-provider xml 中声明 Widget 的默认大小(和其他属性):

https://developer.android.com/guide/topics/appwidgets/index.html

特别是 minWidthminHeight 属性:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="40dp"
    android:minHeight="40dp"
    android:updatePeriodMillis="86400000"
    android:previewImage="@drawable/preview"
    android:initialLayout="@layout/example_appwidget"
    android:configure="com.example.android.ExampleAppWidgetConfigure"
    android:resizeMode="horizontal|vertical"
    android:widgetCategory="home_screen">
</appwidget-provider>

minWidthminHeight 属性的值指定了 App Widget 默认占用的最小空间量。默认主屏幕根据具有定义的高度和宽度的单元格网格在其窗口中定位应用程序小部件。如果 App Widget 的最小宽度或高度的值与单元格的尺寸不匹配,则 App Widget 的尺寸会向上舍入到最接近的单元格大小。

【讨论】:

谢谢,这正是我需要的。有没有办法将默认大小设置为整个页面? 我相信它只需要 dp 值,所以据我所知没有自动的方法。 @KenWolf 有什么方法可以限制小部件的最大尺寸吗? @LoveGarg 你试过 maxWidth 和 maxHeight 了吗?【参考方案2】:

您可以在下面设置代码:

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

如果您想了解详细信息。请拜访 https://www.tutorialspoint.com/android/android_widgets.htm

【讨论】:

【参考方案3】:

很简单,到 res > XML > new_app_widget_info.xml 打开就可以找到

    android:minWidth="320dp"
    android:minHeight="72dp"
    android:previewImage="@drawable/example_appwidget_preview"

其中两行关于 Widget Size,最后一行关于将在 App Widgets 中显示的图像。

【讨论】:

感谢您花时间回答。但是,在提出问题 5 年后感叹某件事是多么容易和简单,这通常表明它可能不是 5 年前,并且除了屈尊俯就之外,并没有给您的答案添加太多内容。

以上是关于更改默认小部件大小的主要内容,如果未能解决你的问题,请参考以下文章

在 Django admin 中更改日期字段的默认小部件

更改 tkinter 文本小部件中的默认输入语言

无法更改停靠小部件填充

如何在 OnDemandGrid 中更改小部件的宽度

QPushButton 更改同一布局中其他小部件的边距

替换表单的默认多对多小部件