2018-09-18 安卓测量控件高度

2018-09-18  本文已影响0人  本泽锅

最近接到一个需求


微信图片_20180918152730.jpg

如图所示,要在头布局加一个遮罩层,需求难点在于这个头布局的高度是不固定的,其中内容和查看更多都是要从后台获取数据后,动态的将整个头布局撑大,尤其是查看更多里面的逻辑涉及到遍历数据,这是后就导致了一个问题,当从后台拿到数据,将背景设置完成后,量取背景的宽高,然后动态的将宽高赋予这个遮罩层, 由于查看更多这个逻辑导致量取背景的宽高第一次不准,刷新一次后才好。其间试了很多次方法,例如 监听OnGlobalLayoutListener ,在onWindowFocusChanged这个方法里测量,但是第一次都不准确,后来网上查阅资料终于找到了 正确的测量方法 :

Glide.with(this).load(image).
                into(new SimpleTarget<GlideDrawable>() {
                    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
                    @Override
                    public void onResourceReady(GlideDrawable resource, GlideAnimation<? super
                            GlideDrawable> glideAnimation) {
                        rl_special_topic_bg.setBackground(resource);
                        rl_special_topic_bg.post(new Runnable() {
                            @Override
                            public void run() {
                                int height = rl_special_topic_bg.getHeight();
                                RelativeLayout.LayoutParams params =  (RelativeLayout.LayoutParams)rl_black.getLayoutParams();
                                params.height = height;
                                params.width = screenWhith;
                                rl_black.setLayoutParams(params);
                            }
                        });
                    }
                });


没错就是用view.post开启一个线程,希望有越到困惑的可以看看,能解决问题就好

上一篇下一篇

猜你喜欢

热点阅读