问题标签 [onmeasure]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在三级可扩展列表视图中缓慢扩展第三级,因为无论视口如何,都必须完全加载第三级
我基于 ngocchung 的项目开始了一个三层可扩展列表视图:
一切正常,除了当我扩大孩子时它相当慢。
检查打印日志后,我发现每次用 20 项展开子项时,都会调用 getChildView() 20 次。在两级 ExpandableListView 中,它只会被调用大约 7 次,因为列表视图一次只能显示 5 个项目。
所以我得出的结论是由于 onMeasure 在 CustomExpListView.java 中限制的视图高度:
此处将高度设置为 20000,这将加载大量项目,然后展开子列表将滞后,因为每个项目都包含图标和两个文本视图。
我尝试将高度从 20000 更改为屏幕高度(5 个项目高度),它会加快扩展速度,但是......列表在第 5 个子项目结束并拒绝向下滚动!
在我看来,因为子列表视图没有滚动条,只有父亲可以滚动,所以子列表视图必须让自己扁平,这样父亲滚动条才能到达子列表的深处。
是否可以将父列表的视图端口与子列表链接?还是有办法限制预加载的子列表项?
提前致谢!
android - 奇怪的 onMeasure() 行为
我有一个复杂的布局,其中包含以下视图:
注意固定的宽度/高度。
在PackPreview
我有 onMeasure 功能:
它会稍微调整视图的宽度。问题是当我在低分辨率屏幕上运行它时,它会陷入 onMeasure 调用的无限循环。在控制台中,我看到了很多这样的消息D/pack: 0,true
。有趣的是这不会发生在更高分辨率的情况下。有对此有何解释?
UPD:刚刚检查:同样的事情发生在任何地方,但在更高的分辨率上MeasureSpec.getSize
返回非零值,所以视觉上看起来不错。
java - 在Android中绘制动态自定义视图棋盘
我想在 android studio 中使用画布和重写方法 onDraw动态绘制一个 8 x 8 棋盘,我几乎成功了,但我遇到了一个非常烦人的问题。
我已经制作了一个自定义视图,我的目标是使父布局与其子自定义视图的大小相匹配,这样我的棋盘就可以覆盖整个屏幕。(在 XML 文件中,父项和子项都设置为 match_parent)
我希望棋盘也能覆盖屏幕的整个高度。
查看下图,这是我得到的结果,请注意下部区域的巨大间隙,我的目的是垂直拉伸棋盘并使其覆盖整个屏幕以消除该空间。
到目前为止,这是我设法写的,但它没有做我想要的: Class ChessBoard:
onDraw 方法:
类瓷砖:
}
onMeasure 方法:
类 ChessBoard 方法:
}
请注意,上面的 onDraw 方法是在棋盘类中实现的。
我确信这个问题的解决方案在于 onMeasure 方法,我在想如果我增加每个方块的高度,那么棋盘会水平伸展并覆盖整个屏幕?谁能告诉我我做错了什么?
android - 列表项上的 Android Swipe 菜单无法处理父宽度更改
我正在尝试在 recyclerview 中为我的项目创建一个滑动菜单并最终实现了库:https ://github.com/chthai64/SwipeRevealLayout
实施后乍一看,我认为它正在工作。但是由于某种原因,当父视图/布局(包含片段的框架布局)更改时,它不会更改/测量/布局项目的正确宽度。
该项目只是保持相同的宽度,要么太宽要么太短,这取决于父视图的缩放方式。
我已经从库的自定义视图“SwipeRevealLayout”中包含了 onMeasure 方法。
我在其他地方找到了解决方案的一部分,该项目的所有内容都正确缩放。我用下面的代码替换了 onMeasure 中的所有代码。然而,这个解决方案有一个副作用,项目被完全从屏幕上擦除,而不是在滑动菜单的按钮之前停止。
android - 为什么只有在方法提取之后才需要 @SuppressLint("WrongCall")
我有这个安卓代码:
没有错误。
但是当我将最后几行提取到私有方法中时,我会收到此警告,需要向私有方法添加抑制注释。
似是而非的方法调用,应该可能调用measure
为什么只有在提取后才需要抑制?
@SuppressLint("WrongCall")
android - 为什么不 super.onMeasure 或 textView,setText() 再次触发测量通过?
我有一些自定义 FrameLayout 的 android 代码。该代码更改了一些 textView 文本。
我看到更改仅在我调用时生效super.onMeasure(...,...)
我希望它onMeasure()
在文本通过代码更改或我调用时自动调用view.invalidate()
为什么后者不影响用户界面?
最后打电话super.onMeasure()
比打电话更有效率view.requestLayout()
吗?
android - 在 onResume() 之前动态更改 DialogFragment Max_Height?
我有一个自定义DialogFragment
,我想根据其视图的内容大小(包装内容)动态更改其 max_height。
我不希望 的更新max_height
导致 UI 跳跃,所以我计划在视图生命周期的早期进行:onMeasure()
.
但是我怎样才能通知包含dialog
or dialogFragment
?
从对话框片段我可以得到它的托管视图,但我无法注册它的onMeasure()
事件。
从视图来看,我可以在onMeasure()
方法中编写代码,但我将如何获得对其包含对话框的引用?
我看到了这篇文章,但是随意更改高度onResume()
会导致 UI 迟缓(看到 UI 后跳转)
android - how much can a scrollView scroll?
I have a layout with a scrollView inside it.
How can I calculate what's the possible scroll size?
I would think:
(scroll's content desired height) - window.height = (invisible content height)
But how do I get the scroll's content actual desired height?
I can get the scrollView height, which is not what I need.
I saw this post, but I don't get the calaulation.
int diff = (view.getBottom() - (getHeight() + getScrollY()));// Calculate
android - 调用 setMeasuredDimension 后使用 width 和 height 参数是否正确?
我创建了一个自定义视图,我想在其中绘制一系列正方形,正方形的边取决于分配给视图的尺寸,因此在onMeasure()
检查模式和大小后的方法中,我调用 setMeasuredDimension (width, height) . 现在在 setMeasuredDimension 之后执行操作是正确的