开发者

Layout weight on dynamically added RemoteViews

开发者 https://www.devze.com 2023-04-03 19:35 出处:网络
Within my widget, i\'m using the following to dynamically add items (R.layout.widget_item) to a LinearLayout defined within my main widget layout:

Within my widget, i'm using the following to dynamically add items (R.layout.widget_item) to a LinearLayout defined within my main widget layout:

//--  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);

My question is, how can I dynamically set the "android:layout_weight" attribute on the newView?


See: http://developer.android.com/reference/android/widget/RemoteViews.html

newView in your example is an instance of class RemoteViews and I don't think you can easily set anything above and beyond what RemoteViews provides.

newView.setLayoutParams(layoutParams);

The above will not work because it's not part of RemoteViews.

As far as I can see... there may be some round about way of setting and finding dimensions and other layoutParams of RemoteViews, but I haven't found it yet.


first you get the view params like this

layoutParams = newView.getParams();

then edit tham //layoutParams .setThis/setThat all kinds of manipulations you want to do

and then set the new params back to the view

newView.setLayoutParams(layoutParams);


layout_weight is part of the LinearLayout.LayoutParams that you apply to a the LinearLayout, not the LinearLayout itself. There's a constructor that takes a third param representing the layout_weight.

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

0

精彩评论

暂无评论...
验证码 换一张
取 消