下面列出了android.appwidget.AppWidgetHostView#updateAppWidgetSize ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Adds a widget to the desktop.
*
* @param data Intent used to receive the ID of the widget being added.
*/
private void addWidget(Intent data, int index, boolean newWidget) {
int widgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
WIDGET_CONFIG_DEFAULT_CODE);
AppWidgetProviderInfo appWidgetInfo = appWidgetManager.getAppWidgetInfo(widgetId);
AppWidgetHostView appWidgetHostView = appWidgetHost.createView(
requireActivity().getApplicationContext(),
widgetId, appWidgetInfo);
// Prevents crashing when the widget info can't be found.
// https://github.com/Neamar/KISS/commit/f81ae32ef5ff5c8befe0888e6ff818a41d8dedb4
if (appWidgetInfo == null) {
removeWidget(appWidgetHostView, widgetId);
} else {
// Notify widget of the available minimum space.
appWidgetHostView.setMinimumHeight(appWidgetInfo.minHeight);
appWidgetHostView.setAppWidget(widgetId, appWidgetInfo);
if (Utils.sdkIsAround(16)) {
appWidgetHostView.updateAppWidgetSize(null, appWidgetInfo.minWidth,
appWidgetInfo.minHeight, appWidgetInfo.minWidth, appWidgetInfo.minHeight);
}
// Remove existing widget if any and then add the new widget.
appWidgetContainer.addView(appWidgetHostView, index);
// Immediately listens for the widget.
appWidgetHost.startListening();
addWidgetActionListener(index);
registerForContextMenu(appWidgetContainer.getChildAt(index));
if (newWidget) {
// Update our list.
widgetsList.add(String.valueOf(widgetId));
// Apply preference changes.
PreferenceHelper.updateWidgets(widgetsList);
}
}
}
/**
* Adds a widget to the desktop.
*
* @param data Intent used to receive the ID of the widget being added.
*/
private void addWidget(Intent data, int index, boolean newWidget) {
int widgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
WIDGET_CONFIG_DEFAULT_CODE);
AppWidgetProviderInfo appWidgetInfo = appWidgetManager.getAppWidgetInfo(widgetId);
AppWidgetHostView appWidgetHostView = appWidgetHost.createView(
requireActivity().getApplicationContext(),
widgetId, appWidgetInfo);
// Prevents crashing when the widget info can't be found.
// https://github.com/Neamar/KISS/commit/f81ae32ef5ff5c8befe0888e6ff818a41d8dedb4
if (appWidgetInfo == null) {
removeWidget(appWidgetHostView, widgetId);
} else {
// Notify widget of the available minimum space.
appWidgetHostView.setMinimumHeight(appWidgetInfo.minHeight);
appWidgetHostView.setAppWidget(widgetId, appWidgetInfo);
if (Utils.sdkIsAround(16)) {
appWidgetHostView.updateAppWidgetSize(null, appWidgetInfo.minWidth,
appWidgetInfo.minHeight, appWidgetInfo.minWidth, appWidgetInfo.minHeight);
}
// Remove existing widget if any and then add the new widget.
appWidgetContainer.addView(appWidgetHostView, index);
// Immediately listens for the widget.
appWidgetHost.startListening();
addWidgetActionListener(index);
registerForContextMenu(appWidgetContainer.getChildAt(index));
if (newWidget) {
// Update our list.
widgetsList.add(String.valueOf(widgetId));
// Apply preference changes.
PreferenceHelper.updateWidgets(widgetsList);
}
}
}
static void updateWidgetSizeRanges(AppWidgetHostView widgetView, Launcher launcher,
int spanX, int spanY) {
getWidgetSizeRanges(launcher, spanX, spanY, mTmpRect);
widgetView.updateAppWidgetSize(null, mTmpRect.left, mTmpRect.top,
mTmpRect.right, mTmpRect.bottom);
}
static void updateWidgetSizeRanges(AppWidgetHostView widgetView, Launcher launcher,
int spanX, int spanY) {
getWidgetSizeRanges(launcher, spanX, spanY, mTmpRect);
widgetView.updateAppWidgetSize(null, mTmpRect.left, mTmpRect.top,
mTmpRect.right, mTmpRect.bottom);
}
static void updateWidgetSizeRanges(AppWidgetHostView widgetView, Launcher launcher,
int spanX, int spanY) {
getWidgetSizeRanges(launcher, spanX, spanY, sTmpRect);
widgetView.updateAppWidgetSize(null, sTmpRect.left, sTmpRect.top,
sTmpRect.right, sTmpRect.bottom);
}
static void updateWidgetSizeRanges(AppWidgetHostView widgetView, Launcher launcher,
int spanX, int spanY) {
getWidgetSizeRanges(launcher, spanX, spanY, sTmpRect);
widgetView.updateAppWidgetSize(null, sTmpRect.left, sTmpRect.top,
sTmpRect.right, sTmpRect.bottom);
}