하나 이상의 열/행에 정보를 표시하는 GridView가있는 위젯 (작동)이 있습니다. 프로그래밍 방식으로 열 수를 설정하려는 경우 사용자가 선택해야합니다. Layout-XML 내부의 numColumns를 "1"로 설정하면 잘 동작합니다. RemoteAdapter를 사용하여,위젯 (RemoteViews)의 GridView에서 numColumns 변경이 적용되지 않습니다.
<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() 메소드 :
rViews.setInt(R.id.duration_view, "setNumColumns", 1);
레이아웃은 다음과 같습니다
나는 다음과 같은 방법으로 numColumns를 설정하려고하면 , 그것은 아무런 영향을 미치지 않습니다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는 효과가 없을뿐만 아니라 다른 메서드도 호출합니다. 내가 뭘 잘못하고있어?
귀하의 질문을 해결하면 아래의 답변을 수락하십시오. –