我有一个LogoView,它是一个包含单个ImageView的全屏fragment。Logo图像完全可见后,我必须执行一些操作。以下代码用于调用特殊任务@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){ImageViewlogoImageMaster=newImageView(getContext());//logoImageMaster.setImageResource(resID);//evenafterremovingthis,ia
我有以下ListView项目:目前,除了TextView(2)的宽度外,一切都按预期工作并放置在应有的位置。因为我使用了带有一些wrap_contents的RelativeLayout,所以我使用了onGlobalLayoutListener,所以我可以在View完成加载和渲染时访问MeasuredWidths和Heights。然而,使用TextView2时,我在调试时得到了一些奇怪的结果。第一次调用onGlobalLayout时,TextView2的measuredWidth是它应该的值(375像素)。然而,第二次是48像素(与高度相同),当我查看TextView2的字段时,它显示:
我已经在使用ViewTreeObserver的Activity中没有问题,但在这种情况下我没有得到onGlobalLayout回调。由于我在执行httpAPI调用后获得了View的宽度,因此宽度似乎已经计算出来(由于API调用所花费的时间)。无论如何,为了确保我向ViewTreeObserver添加了一个监听器。但有时我没有收到回调(是的,有时)。我可以在添加监听器之前检查宽度以避免必须等待回调,但我不知道为什么有时我没有收到回调。我已经检查过viewTreeObserver始终处于Activity状态。ViewTreeObserverviewTreeObserver=view.get