Android之getViewTreeObserver().ad

2021-12-08  本文已影响0人  侑兮君

引言:问题是这样的,项目里有个功能需要在代码里面获取、计算控件宽度,因此项目里面引入了监听View绘制完成的方法。但是由于该方法的引入,导致页面滑动过程中,绑定了addOnGlobalLayoutListener()监听的控件存在滑动抖动现象。

//监听title 的view绘制完成后,获取宽度title.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
    public void onGlobalLayout() {
      LinearLayout.LayoutParams layoutParams = (LayoutParams)viewFlipper.getLayoutParams();

       layoutParams.width = AppUtils.getScreenWidth(getContext()) - (title.getWidth() + AppUtils.dip2px(getContext(), 100));

        viewFlipper.setLayoutParams(layoutParams);

        getViewTreeObserver().removeOnGlobalLayoutListener(this);

    }});
上一篇下一篇

猜你喜欢

热点阅读