addOnGlobalLayoutListener
全部标签 问题:假设我们有一个简单的案例:我们有View,我们必须在这个View上显示一些数据。我们使用静态方法showData(Viewview)来做到这一点。我想知道测量View布局的确切时间,我可以访问getWidth()getHeight()并确保这是我View的最终宽度和高度。我所知道的:(不确定我100%正确):我知道3种不同的方法来做到这一点view.addOnLayoutChangeListener-我们知道布局改变时,我们可以获取高度和宽度view.getViewTreeObserver().addOnGlobalLayoutListener-以我为例几乎相同,但我们稍后会获得
为什么我们要使用ViewTreeObserver,谁能解释一下?在下面的代码中,creditsView是TextView对象。通过这整个代码,我明白“这是根据条件隐藏一些文本”,但唯一的问题是我们为什么使用ViewTreeObserver?mainLayout.getViewTreeObserver().addOnGlobalLayoutListener(newViewTreeObserver.OnGlobalLayoutListener(){@OverridepublicvoidonGlobalLayout(){intheightDiff=mainLayout.getRootView
当我使用GlobalLayoutListener查看softKeyboard是否打开时,该fragment在被销毁后不再被垃圾回收。我的工作:我在fragment的onDestroy()中删除了监听器我在onDestroy()中将Listener设置为null我在onDestroy()中将观察到的View设置为null仍然泄漏fragment。有没有人遇到过类似的问题并且知道解决方法??我的onDestroy:@OverridepublicvoidonDestroy(){Log.d(TAG,"onDestroy");if(Build.VERSION.SDK_INT