- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Activity 加载完成后计算 View 的 x,y 位置。我所做的是 view.postDelayed(runnable, 2000)
工作正常。 code reviewer 对此不满意并建议使用 OnGlobalLayoutListener 来了解 Activity 加载的完成情况。不知何故,我不喜欢 OnGlobalLayoutListener,因为它与我的解决方案不需要的整个 View 树相关联。我试图了解这些方法的优缺点。谢谢!
最佳答案
如果您只想读取 View 的 x
和 y
坐标,我建议使用 view.post(Runnable)
没有延迟(除非有充分的理由包括延迟)。这会将 Runnable
添加到 UI 线程中的消息队列中。 Runnable
将等待执行,直到您的 View
膨胀并附加到窗口。由于 View
位置属性值取决于 View 的布局上下文,因此发布 Runnable
将为您提供所需的时间。
正如您在问题描述中提到的,OnGlobalLayoutListener
将应用于整个 View
的布局,如类名所示。仅当您关心 View 树中任何或所有 View 的布局状态或可见性时,才应考虑 OnGlobalLayoutListener
。 IE。任何导致 View 树重新布局的东西。
关于android - onGlobalLayoutListener 与 postRunnable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586146/
我以编程方式创建了几个布局,我需要获取其中一个的宽度,重新计算该值并进行更改。我在 onGlobalLayoutListener 中执行的所有这些操作。但是当我设置一个新的宽度值时,他并没有改变。 p
我正在尝试在 Activity 加载完成后计算 View 的 x,y 位置。我所做的是 view.postDelayed(runnable, 2000) 工作正常。 code reviewer 对此不
我在 onCreate() 方法中使用 ViewTreeObserver.OnGlobalLayoutListener 来获取布局的宽度。它工作得很好,但是当我在 onGlobalLayout() 中
谁能用 C# 向我解释这段 Java 代码,因为我在 Android 上使用 Mono?例如,我在 Android 的 Mono 中找不到 OnGlobalLayoutListener。 在 Andr
我希望能够使用动画扩展我的 ListView 中的行。因此我需要知道正在扩展的 View 的高度。我在 ArrayAdapter 的 getView() 方法中使用它: mDetailsView.ge
我必须使用 OnGlobalLayoutListener 对象,然后删除监听器,我遇到了不推荐使用的方法的问题,我使用以下代码解决了这个问题。 protected void onCreate(Bund
我在两个 TextView 的父 View 上使用 viewTreeObserver.addOnGlobalLayoutListener , onGlobalLayout 以获得一个的宽度和另一个的高
我正在做一个非常简单的功能,比如在 TextView 的末尾添加省略号。 我可以在 onMeasure()、onLayout() 和 OnGlobalLayoutListener() 调用中添加该功能
在我正在构建的应用程序中,有一个 ListView ,实际上是一个带有子列表的可扩展 ListView - 并且有两种情况,具体取决于单击的组列表项:有时有一个子列表项,有时有两个子列表项.当单击包含
我在我的应用程序中显示一个带有自定义项的 ListView。自从我使用来自 47deg found here 的 android-swipelistview 以来,自定义项目已经做了很多工作。 . 因
我有一个 RecyclerView,我在其 View 持有者构造函数中添加了一个 onGlobalLayoutListener,如下所示 public CustomViewHolder(final V
根据文档,第一个是 当 View 的布局边界由于布局处理而改变时调用回调的接口(interface)定义。 第二个是 当全局布局状态或 View 树中 View 的可见性发生变化时调用回调的接口(in
我有一个普通的基本回收器 View 及其适配器。 在单个回收器 View 行中,我有一个 float 的 textView。 textView 宽度长度应按比例固定,即 30 % 的屏幕。 我想放置
我是一名优秀的程序员,十分优秀!