大家好,我是android样式设计的新手,我想问一下是否有一种方法可以将可绘制背景应用于小部件(例如:布局中的所有按钮),而不必在每个小窗口中键入android:drawable小部件。
答案 0 :(得分:1)
您可以创建类扩展按钮:
public class CustomButton extends Button {
public CustomButton(Context context, AttributeSet attrs) {
super(context, attrs);
//set drawable here
}
}
并在xml文件中调用CustomButton:
<yourpackage.name.CustomButton
android:id="@+id/xxx"
android:text="CustomButton" />
答案 1 :(得分:0)
您可以在每个布局中添加它,但是也可以通过迭代页面上的每个控件以编程方式添加它。我最近做了这个。我不喜欢这个结果,因为(从字面上看)不可能检查现有样式以查看是否需要替换它-我不想重新设置标签的样式-但这是这样的:
//change linerlayout to whatever viewgroup type you have
LinearLayout layout = (LinearLayout) findViewById(R.id.name_of_your_linearlayout);
for(int count = 0; count < layout.getChildCount(); count ++) {
if (layout.getChildAt(count)) instanceOf EditText) {
/*do your work here. Note you don't have to limit yourself
to theming. You could add an event to every button or textbox
at the same time */
}
}