【发布时间】:2014-09-20 22:04:24
【问题描述】:
所以我以编程方式创建新按钮并将它们添加到 LinearLayout,但是我想用预定义的样式初始化这些按钮。我花了一些时间寻找解决方案并尝试了答案,但我似乎仍然无法让它发挥作用。
当我在布局中添加一个新按钮时,它应该看起来像 this picture 中的按钮(靠近顶部)。
我尝试在 res/values/ 中创建一个 xml 文件并使用new Button(context, null, R.style.ChoiceButton) 初始化一个按钮,但它不起作用导致this happening。
我还尝试了为按钮创建新布局 xml 并使用 (Button)getLayoutInflater().inflate(R.layout.choice_buttton_layout, null) 的解决方法,但这也不起作用,resulting in this (two buttons to show lack of margin)。
res/values/choice_button.xml
<resources>
<style name="ChoiceButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">center_horizontal</item>
<item name="android:layout_marginBottom">7dp</item>
<item name="android:minWidth">250dp</item>
<item name="android:background">#ff27ae60</item>
<item name="android:textColor">#ffffffff</item>
<item name="android:enabled">true</item>
</style>
</resources>
来自 Main.java 的片段
public void btnAdd_click(View view) {
Button newBtn = new Button(getApplicationContext(), null, R.style.ChoiceButton);
newBtn.setText("new button");
newBtn.setId(Util.generateViewId());
LinearLayout layout = (LinearLayout)findViewById(R.id.layoutTop);
layout.addView(newBtn);
}
activity_main.xml
我只是缺少什么吗?这甚至可能吗?
【问题讨论】:
标签: java android android-layout