TextView SetTextSize不在片段内工作

时间:2018-02-20 13:29:31

标签: android android-fragments

我有一个TabLayout和ViewPager的Activity。我在右下角的活动顶部浮动了两个固定按钮。这两个按钮是加号和减号按钮,用于增加/减少片段内文本的字体大小。我在Activity中创建了一个接口,并在片段中实现了它,我正在改变TextView的文本大小。

问题是当我点击按钮时它不起作用。当我滑动片段时,它会显示更新的文本大小。我错过了什么吗?这是正确的方法吗?

内部活动

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.post_single);
        //....
        onCoachMark();
        //....
}

public void onCoachMark() {
        final FrameLayout overlayFramelayout = new FrameLayout(getApplicationContext());
        setContentView(overlayFramelayout);
        View view = getLayoutInflater().inflate(R.layout.post_single, overlayFramelayout, false);
        final View overlay_view = getLayoutInflater().inflate(R.layout.zoom_overlay, overlayFramelayout, false);
        final ImageView ivPlus = (ImageView) overlay_view.findViewById(R.id.ivPlus);
        final ImageView ivMinus = (ImageView) overlay_view.findViewById(R.id.ivMinus);

        overlayFramelayout.addView(view);
        overlayFramelayout.addView(overlay_view);

        ivPlus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CommonFunctions.FONT_SIZE += 3;
                CommonFunctions.putMySharedPreferences(getApplicationContext(), "fontSize", String.valueOf(CommonFunctions.FONT_SIZE));
                iCoachMark.onTextSizeChange();
            }
        });
        ivMinus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CommonFunctions.FONT_SIZE -= 3;
                CommonFunctions.putMySharedPreferences(getApplicationContext(), "fontSize", String.valueOf(CommonFunctions.FONT_SIZE));
                iCoachMark.onTextSizeChange();
            }
        });
    }

    public interface ICoachMark {
        void onTextSizeChange();
    }
    public void setOnCoachMark(ICoachMark iCoachMark) {
        this.iCoachMark = iCoachMark;
    }

内部碎片:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.post_content, container, false);
        tvTitle = (TextView) rootView.findViewById(R.id.tvTitle);
        tvDescription = (TextView) rootView.findViewById(R.id.tvDescription);
        svPost = (NestedScrollView) rootView.findViewById(R.id.svPost);

        String fs = CommonFunctions.getMySharedPreferences(getActivity().getApplicationContext(), "fontSize");
        if (fs.matches("")) {
            CommonFunctions.putMySharedPreferences(getActivity().getApplicationContext(), "fontSize", String.valueOf(CommonFunctions.FONT_SIZE));
        } else {
            CommonFunctions.FONT_SIZE = Integer.valueOf(fs);
            tvTitle.setTextSize(CommonFunctions.FONT_SIZE);
            tvDescription.setTextSize(CommonFunctions.FONT_SIZE);
        }
        ((PostActivity) getActivity()).onTextSizeChange(new PostActivity.ICoachMark() {
            @Override
            public void onTextSizeChange() {
                tvTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP, CommonFunctions.FONT_SIZE);
                tvDescription.setTextSize(TypedValue.COMPLEX_UNIT_SP, CommonFunctions.FONT_SIZE);
            }


           });
}

enter image description here

0 个答案:

没有答案