Вес макета для динамически добавляемых RemoteViews - PullRequest
4 голосов
/ 10 сентября 2011

В моем виджете я использую следующее для динамического добавления элементов (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);

Мой вопрос, как я могудинамически установить атрибут «android: layout_weight» в newView?

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

См .: http://developer.android.com/reference/android/widget/RemoteViews.html

newView в вашем примере является экземпляром класса RemoteViews, и я не думаю, что вы можете легко установить что-то сверх того, что обеспечивает RemoteViews.

newView.setLayoutParams(layoutParams);

Вышеописанное не будет работать, потому что оно не является частью RemoteViews.

Насколько я вижу ... может быть некоторый раунд в способе установки и поиска размеров и других макетовParams RemoteViews, но у меня нетпока не нашел.

0 голосов
/ 10 сентября 2011

layout_weight является частью LinearLayout.LayoutParams, которую вы применяете к LinearLayout, а не к самой LinearLayout. Есть конструктор, который принимает третий параметр, представляющий layout_weight.

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

0 голосов
/ 10 сентября 2011

сначала вы получаете параметры вида, подобные этому

layoutParams = newView.getParams();

, затем редактируете tham // layoutParams .setThis / setThat все виды манипуляций, которые вы хотите сделать

, а затем устанавливаете новые параметрывернуться к просмотру

newView.setLayoutParams(layoutParams);
...