【发布时间】:2014-06-14 07:36:03
【问题描述】:
看起来 android 忽略了 ImageButton 的布局参数。当我的布局 xml 使用样式定义 ImageButtons 时,会考虑 layout_weight。但是,当我动态添加按钮时,权重会被忽略,我必须手动定义 LayoutParameters。
Styles.xml 条目:
<style name="TabbedPanelToolbarControl" parent="android:style/Widget.ImageButton">
<item name="android:background">@null</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1.0</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
</style>
布局xml:
...
<LinearLayout
android:id="@+id/toolbar"
android:orientation="vertical" >
<!-- image buttons go here -->
</LinearLayout>
...
代码:
View view = inflater.inflate(R.layout.test, container, false);
LinearLayout mToolbar = (LinearLayout)view.findViewById(R.id.toolbar);
ImageButton ib = new ImageButton(this.getActivity(), null, R.style.TabbedPanelToolbarControl);
ib.setImageDrawable(icon);
ib.setContentDescription(title);
// ignored layout_weight defined in TabbedPanelToolbarControl style
mToolbar.addView(ib);
// need to re-specify layout
mToolbar.addView(ib, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1.0f));
有人知道在动态添加按钮时强制从styles.xml 中读取layout_weight 的方法吗?
【问题讨论】:
标签: android android-styles android-imagebutton android-layout-weight