Android小部件允许的最大尺寸

4
我们可以使用以下方法设置小部件的最小尺寸。
android:minHeight="40dp"
android:minResizeHeight="40dp"
android:minResizeWidth="40dp"
android:minWidth="40dp"

没有 android:max___ 属性。

有没有一种方法可以限制可调整大小的小部件的最大大小?

(也许是一个我没有看到的调整大小回调或类似于那样的东西?)


需要注意的是文档说调整大小的常见用例是列表或网格。这些不需要设置最大尺寸。

我的用例很简单,就是“客户要求一个只能是1x1或2x2的小部件”。他会得到他想要的吗,还是我必须替他改变主意?

3个回答

9
有没有办法限制可调整大小的小部件的最大尺寸? 没有,但您可以通过在小部件的XML文件中禁用水平或垂直调整大小来限制用户。 例如:仅限水平方向
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/widget_layout"
android:minHeight="220dp"
android:minWidth="180dp"
android:resizeMode="horizontal"
android:updatePeriodMillis="0" 
android:previewImage="@drawable/widget_all_in_one_preview"/>

示例:仅限竖直方向

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/widget_layout"
android:minHeight="220dp"
android:minWidth="180dp"
android:resizeMode="vertical"
android:updatePeriodMillis="0" 
android:previewImage="@drawable/widget_all_in_one_preview"/>

您也可以通过以下方式同时完成:

android:resizeMode="horizontal|vertical"

请确保使用 NinePatch 图像或通过编程设置 Background 颜色。

或者 提供一个固定大小的 Widget 以保险起见 :)

希望这有所帮助。


1
客户不想要两个不同大小的固定小部件...是时候改变他的想法了。 - Richard Le Mesurier

2
几年后,也许可以做第二个布局,如果用户超过最大宽度/高度,小部件将切换到此布局,并且不再增长以匹配父级大小。使用预定义的最大高度/宽度的布局,如果想要控制其在边界区域内的位置,则需要将其嵌套在帧布局中。

1

正如 @Sami Eltamawy 所说,您无法设置最大高度。但您可以在小部件布局中设置: layout_height="wrap_content"。

通过这种方式,小部件的大小将受到内容的限制。

我知道这对 OP 没有帮助,但它可能会帮助其他人。


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