我有一個窗口小部件(工作)與GridView,其中顯示1列或多列/行信息。 我想以編程方式設置列數,導致用戶應該選擇。如果我將Layout-XML中的numColumns設置爲「1」,則它工作正常。 如果我嘗試設置爲numColumns通過以下方式,它沒有任何效果:在Widget(RemoteViews)GridView中更改numColumn沒有任何作用
rViews.setInt(R.id.duration_view, "setNumColumns", 1);
佈局是這樣的:
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/duration_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="64dp"
android:verticalSpacing="0dp"
android:columnWidth="192dp"
android:numColumns="auto_fit"
/>
我的窗口小部件的onUpdate()方法,使用RemoteAdapter:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// ....
Intent intent = new Intent(context, ViewFlipperWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
RemoteViews rViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
rViews.setRemoteAdapter(R.id.duration_view, intent);
rViews.setEmptyView(R.id.duration_view, R.id.empty_view);
// This doesnt have any effect...:-(
rViews.setInt(R.id.duration_view, "setNumColumns", 1);
appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.duration_view);
AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, rViews);
// ....
super.onUpdate(context, appWidgetManager, appWidgetIds);
不僅setNumColumns沒有效果,還有其他方法調用。 我做錯了什麼?
如果它解決您的問題,請接受下面的答案。 –