簡體   English   中英

AndroidWidget上的RemoteViews setViewVisibility

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM