6

在我的小部件中,我使用以下内容将项目(R.layout.widget_item)动态添加到我的主小部件布局中定义的 LinearLayout:

//--  Main widget layout
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_design);

//--  Add to main layout
RemoteViews newView = new RemoteViews(context.getPackageName(), R.layout.widget_item);
views.addView(R.id.view_container, newView);

我的问题是,如何在 newView 上动态设置“android:layout_weight”属性?

4

3 回答 3

1

请参阅:http: //developer.android.com/reference/android/widget/RemoteViews.html

您的示例中的 newView 是 RemoteViews 类的一个实例,我认为您无法轻松设置任何超出 RemoteViews 提供的内容。

newView.setLayoutParams(layoutParams);

以上将不起作用,因为它不是 RemoteViews 的一部分。

据我所知......可能有一些关于设置和查找RemoteViews的尺寸和其他layoutParams的方法,但我还没有找到它。

于 2012-02-07T09:53:10.063 回答
-1

layout_weight 是应用于 LinearLayout 的 LinearLayout.LayoutParams 的一部分,而不是 LinearLayout 本身。有一个构造函数接受代表 layout_weight 的第三个参数。

http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#weight

于 2011-09-10T17:59:44.173 回答
-1

首先你得到这样的视图参数

layoutParams = newView.getParams();

然后编辑 tham //layoutParams .setThis/setThat 各种你想做的操作

然后将新参数设置回视图

newView.setLayoutParams(layoutParams);
于 2011-09-10T17:59:00.330 回答