
我试图在onCreate方法中获取视图的高度,但我找不到任何方法来删除OnGlobalLayoutListener.
在Java(工作):
containerLayout.getVIEwTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @OverrIDe public voID onGlobalLayout() { containerLayout.getVIEwTreeObserver().removeGlobalOnLayoutListener(this); int wIDth = layout.getMeasureDWIDth(); int height = layout.getMeasuredHeight(); } });在Kotlin(不接受“这个”):
containerLayout.vIEwTreeObserver.addOnGlobalLayoutListener { containerLayout.vIEwTreeObserver.removeOnGlobalLayoutListener(this) Toast.makeText(applicationContext, "size is "+ containerLayout.height,Toast.LENGTH_LONG).show() }这个问题有没有参考或例子?谢谢.
解决方法:
不支持从内部引用lambda.
作为一种解决方法,您可以使用匿名对象而不是lambda SAM转换为Java功能接口OnGlobalLayoutListener:
containerLayout.vIEwTreeObserver.addOnGlobalLayoutListener(object: OnGlobalLayoutListener { overrIDe fun onGlobalLayout() { // your code here. `this` should work }}) 总结 以上是内存溢出为你收集整理的android – 如何从里面引用lambda?全部内容,希望文章能够帮你解决android – 如何从里面引用lambda?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)