我想知道是否有一种方法可以遍历布局中的所有 View 并更改所有具有文本的 View (即 TextView、CheckBox、EditText 等)的字体。我有一个称为 setContentView() 的布局,想知道是否有一种简单的方法可以做到这一点。
我可以使用 findViewById() 手动完成它,但我宁愿有一种简单的方法来遍历它们。
谢谢, -克拉克-
最佳答案
也许这会让你开始:
protected void changeFonts(ViewGroup root) {
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/comicsans.ttf");
for(int i = 0; i <root.getChildCount(); i++) {
View v = root.getChildAt(i);
if(v instanceof TextView ) {
((TextView)v).setTypeface(tf);
} else if(v instanceof Button) {
((Button)v).setTypeface(tf);
} else if(v instanceof EditText) {
((EditText)v).setTypeface(tf);
} else if(v instanceof ViewGroup) {
changeFonts((ViewGroup)v);
}
}
}
关于android - 遍历布局中的 View 并更改字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7366439/