在我的AppWidgetProvider中,执行以下操作:

@Override
public void onReceive(Context ctx, Intent intent) {
    final String action = intent.getAction();
    if (action.equals(NEXTPAGE_ACTION)) {
        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(ctx);
        RemoteViews rv = new RemoteViews(ctx.getPackageName(), R.layout.widget_layout);
        rv.setViewVisibility(R.id.page1, View.GONE);
        rv.setViewVisibility(R.id.page2, View.VISIBLE);
    final int appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    appWidgetManager.updateAppWidget(appWidgetId, rv);
    }
}

尽管我通过updateAppWidget更新布局,但更改并未真正反射(reflect)在UI上。可能出什么问题了?非常感谢!

最佳答案

您是否尝试过使用INVISIBLE而不是GONE?消失的 View 将消失,就好像它从来没有出现过一样。并且“不可见”将在布局中保留 View 的位置,但使其不可见。

 rv.setViewVisibility(R.id.page1, View. INVISIBLE);

09-12 06:38