所以我正在以编程方式创建新按钮并将它们添加到LinearLayout中,但是我想用预定义的样式初始化这些按钮。我花了一些时间搜索解决方案并尝试答案,但似乎仍然无法使其正常工作。
当我向布局添加一个新按钮时,它应该看起来像这张图片上面的按钮。
我尝试在res/values/中创建一个xml文件,并使用
我还尝试了一种解决方法,即为按钮创建一个新的布局xml,并使用
当我向布局添加一个新按钮时,它应该看起来像这张图片上面的按钮。
我尝试在res/values/中创建一个xml文件,并使用
new Button(context, null, R.style.ChoiceButton)
初始化按钮,但结果不起作用,导致发生这种情况。我还尝试了一种解决方法,即为按钮创建一个新的布局xml,并使用
(Button)getLayoutInflater().inflate(R.layout.choice_buttton_layout, null)
,但这也不起作用,结果是这样(两个按钮显示缺少边距)。
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
我是否遗漏了什么?这是否可能实现?