我知道样式可以正常工作,因为它正是我之前使用的样式,尽管是在 XML 中。我正在做的一个简单的例子(不工作)..
LinearLayout buttonlayout = (LinearLayout) dialogLayout.findViewById(R.id.layout_menu_buttons);
Button bSettings = new Button(getActivity(), null, R.style.button_menu);
buttonlayout.addView(bSettings);
我让它在 XML 中完美运行,我能够创建没有样式的按钮没问题(这工作但没有让我动态应用样式)..
Button bSettings = new Button(getActivity());
bSettings.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
完整代码:
// Getting reference to the Menu layout
LinearLayout buttonlayout = (LinearLayout) dialogLayout.findViewById(R.id.layout_menu_buttons);
buttonlayout.removeAllViewsInLayout();
// Dynamically create buttons
Button bSettings = new Button(getActivity(), null, R.style.button_menu);
Button bHelp = new Button(getActivity(), null, R.style.button_menu);
Button bHistory = new Button(getActivity(), null, R.style.button_menu);
Button bAbout = new Button(getActivity(), null, R.style.button_menu);
// Adding to Layout
buttonlayout.addView(bSettings);
buttonlayout.addView(bHelp);
buttonlayout.addView(bHistory);
buttonlayout.addView(bAbout);
button_menu 样式..
<style name="button_menu" parent="@style/Fill.Width">
<item name="android:background">@drawable/selector_example1_button_background</item>
<item name="android:layout_margin">10dp</item>
<item name="android:padding">30dp</item>
</style>
注意:我使用 DDMS 转储视图进行了检查,发现所有按钮都在那里,它们都有正确的文本等。我只是看不到它们,它们似乎实际上并没有使用任何属性包含在样式中。
在设置没有区别的样式后,我也尝试再次设置 LayoutParams。
对此有点困惑。。
有任何想法吗?