[英]RemoteViews setViewVisibility on Android Widget
在我的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更新布局,但更改並未真正反映在UI上。 什么可能出錯? 非常感謝!
你嘗試過使用INVISIBLE而不是GONE嗎? Gone將刪除視圖,就好像它從未出現過一樣。 隱形會將視圖放置在布局中,但會使其不可見。
rv.setViewVisibility(R.id.page1, View. INVISIBLE);
我有小部件應用程序的相同問題。 如果你這樣的話我發現appWidgetId錯了。 第一次更新UI時,必須將appWidgetId跟蹤為靜態變量。 然后,我們可以將該變量用作更新UI的常見appWidgetId 。
或者您可以在onReceiver函數中嘗試以下代碼:
final ComponentName provider = new ComponentName(context, this.getClass()); appWidgetManager.updateAppWidget(provider, views);
哪些視圖是RemoteViews 。
謝謝,對不起我的英語。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.