gpt4 book ai didi

android - 在 Widget (RemoteViews) 中更改 GridView 中的 numColumns 没有效果

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:33:09 25 4
gpt4 key购买 nike

我有一个带有 GridView 的小部件(有效),它在 1 个或多个列/行中显示信息。我想以编程方式设置列数,因为用户应该选择。如果我将 Layout-XML 中的 numColumns 设置为“1”,它就可以正常工作。如果我尝试以下列方式设置 numColumns,它没有任何效果:

    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 没有效果,其他方法调用也是如此。我做错了什么?

最佳答案

您可以针对 RemoteViews View 调用的唯一方法是那些带有 @android.view.RemotableViewMethod 注释的方法。 GridView 只有三个这样的方法:

@android.view.RemotableViewMethod
public void setRemoteViewsAdapter(Intent intent) {

@android.view.RemotableViewMethod
public void smoothScrollToPosition(int position) {

@android.view.RemotableViewMethod
public void smoothScrollByOffset(int offset) {

你可以自己验证一下:

https://android.googlesource.com/platform/frameworks/base/+/jb-release/core/java/android/widget/GridView.java

关于android - 在 Widget (RemoteViews) 中更改 GridView 中的 numColumns 没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13725837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com