1

我正在构建一个 android 应用程序,我需要在第一个活动中使用搜索栏来使用它来更改所有其他活动的所有文本的字体大小(大约 8 个活动)。有人可以帮忙吗?

4

1 回答 1

1

解决方案是:你不能。但是有一个解决方法(不确定虽然值得一试)。您创建一个基本活动并在所有活动中扩展基本活动(如您所说,大约 8 个)。然后,您可以使用for循环之类的东西为 Base Activity 的 onResume() 中的 activitites 中的每个文本设置字体。

像这样的东西:

public static void setViewGroupTypeface(ViewGroup container, Typeface typeface) {
        final int children = container.getChildCount();

        for (int i = 0; i < children; i++) 
            View child = container.getChildAt(i);

            if (child instanceof TextView) {
                setTextViewTypeface((TextView) child, typeface);
            } else if (child instanceof ViewGroup) {
                setViewGroupTypeface((ViewGroup) child, typeface);
            }
        }
    }

    public static void setTextViewTypeface(TextView textView, Typeface typeface) {
        textView.setTypeface(typeface);
    }

setViewGroupTypeface您使用活动的 rootView 作为 viewGroup 以及 typeFace 来调用该方法。

于 2013-10-13T17:46:19.373 回答