问题标签 [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 - 覆盖 OnMeasure
我使用以下 xml 制作了一个自定义视图
我想将它们的多个副本插入带有 Linearlayout 的 ScrollView。
由于屏幕尺寸不同,我知道我们必须使用 onmeasure 覆盖相应地缩放它们。
使用上面的代码,我总是得到 wSpec = 0 和 hSpec = 382。
我怎样才能获得我想将我的 CustomView 插入的 LinearLayout 的大小?
谢谢
android - 为什么在我的自定义视图中调用了两次 onMeasure()?
下面是我的自定义代码View
:
XML 布局:
我的代码CustomView.java
:
测试活动代码:
日志输出:
我搜索了 StackOverflow,但没有人给出明确的答案。有人可以帮助我吗?
android - 中断 onMeasure 循环以显示错误(Android)
我已经覆盖了View 的方法以提供一些自定义行为,如果在我的自定义调用期间发生错误getView(int, View, ViewGroup)
,我希望能够中止递归,并立即停止尝试呈现该 Activity 以支持另一个显示错误的 Activity .measure() -> onMeasure() -> measureChildStuff() -> child.measure()
getView()
不幸的是,Android 似乎坚持在听我改变 Activity 的意图之前完成测量堆栈。有没有办法可以强制 Intent 立即启动?例如,我可以通过覆盖来实现任何目标Context.startActivity()
吗?
android - android - 自定义视图的宽度和高度为 0
我正在尝试在垂直 LinearLayout 中创建一个包含两个 TextView 的自定义视图,但我完全不知道它是如何工作的。
目前什么都没有出现,因为我的 onDraw 方法没有被调用。我认为这是因为我的视图(LinearLayout?)的宽度和高度均为 0。
我想我应该覆盖我的 onMeasure,但是在尝试 setMeasuredDimension(100,100) 之后这仍然不起作用。
我正在尝试在视图中膨胀一个 xml 并在其中使用两个 TextView。
一个解释也很好,所以我希望能明白这一切是如何运作的。
谢谢
size_button.xml
尺寸按钮.java
ProductFragment.java - 将按钮添加到片段的位置
android - 自定义 View Wrap 内容覆盖 OnMeasure
我创建了一个自定义视图,其中绘制了位图。问题是自定义视图占据了整个屏幕,无论我设置它的布局宽度/高度还是它的父级。
我一直在浏览论坛,并阅读了有关覆盖 onmeasure 方法的信息,但对我来说返回零,所以现在宽度和高度设置为零。
这是我到目前为止所做的:
编辑
完整的 xml:
在我设置自定义视图的片段中,如下所示:
然后在我的自定义视图类中我调用 onMeasure 如下:
wrapHeight 和 wrapWidth 返回为零。有人可以提供一些建议吗?我是自定义视图等方面的新手,所以我很感激你的挖掘;)
****EDIT**** 我应该补充一点,这是一个滑块,所以在我的自定义视图中我使用 onscroll 方法......我想这可能会改变一些事情。所以我有一个框架图像,我的视图在其下滚动,所以我想我需要将视图的高度设置为框架高度的两倍?
任何人都可以帮忙吗?
布局结构
java - 自定义视图onMeasure中的奇怪问题
我有一个自定义视图从RelativeLayout
大小应该是正方形的地方扩展,以及一个背景图像,match_parent
它的宽度和高度是它的孩子。还有一个按钮应该水平居中并与背景图像的底部对齐。
一切正常,直到我添加一些边距并将我的设备旋转到横向模式。在横向模式下,容器的宽度不知何故大于其高度,如下所示:
自定义视图只是一个从 RelativeLayout 扩展的简单类,我已经重写了它的onMeasure
方法,如下所示:
以及视图的布局:
谁能指出我在这里做错了什么?如果这个问题之前已经回答过,有人可以给我一个链接吗?搜索后似乎找不到任何类似的问题。我正在为 API 11 开发并在运行 Android 4.04 的三星 Galaxy Tab 8.9 上进行测试。
谢谢!
java - 如何调用 onMeasure 方法?- 安卓
我有一种活动,一种观点。此视图的目的是显示一个方形网格。正方形边将等于屏幕宽度除以水平存在的正方形数量。
我已经在努力创建具有自定义高度的视图,我这样做了:
问题是,当我调试时,squareSide 变量的值为 0。我认为 onMeasure() 可能在 createGuideLines() 之后被调用。如果我之前调用它,它会解决我的问题吗?我在文档上读到有一个方法 requestLayout() 调用 onMeasure() 方法,但我不知道如何实现它。
谢谢你的时间。
android - 更改布局宽度和高度时如何调用onMeasure
嗨,我正在画画布。为此,我使用自定义视图Activity
(extends View
)将此视图添加到ScrollView
mainactivity(extends Activity
) 中以滚动画布,并且我的自定义视图宽度和高度为 700*3000,并且在运行时自定义视图宽度和高度增加。
现在我如何onMeasure()
在更改宽度和高度时调用。
这onMeasure()
在自定义视图调用时调用。但是在运行时它不会被调用,除非onResume()
调用。
对于调用onMeasure()
,我使用measure(width,heigt);
in onTouch()
。
但它没有被调用。是否可以onMeasure()
在运行时调用。那么,如何?任何人给我一个解决方案。
android - Android - 如何检查可扩展高度 GridView 中的滚动位置
我expandable height GridView
在我的片段中使用。onMeasure
它是带有重写方法的默认 GridView 。这允许GridView
在ScrollView
其中使用此 GridView 包装片段。
但是我在检查GridView
屏幕上显示的项目时遇到了问题。所有可以帮助我的方法都不适用于覆盖,因为所有项目在创建onMeasure
时一次显示。GridView
getScrollY() - 总是返回 0,因为 GridView 已经被覆盖的 onMeasure 扩展并且不会滚动。
onScrollListener's
参数只是从 0 到最后一个项目的一系列可见子视图,因为它们都显示(通过 onMeasure),而不是实际的滚动位置。
android - onMeasure 被调用了 1,500 多次
我最近注意到我的应用程序存在严重的性能问题。我基本上有以下布局......
描述
简而言之,有一个ViewPager
将 3 RelativeLayout
s 保存为页面的 a。在每个页面内都有一些TextView
s。我最近注意到,当我在上面输入以执行快速 SQL 查询以自动完成时EditText
,会出现很多延迟。TextWatcher
当我输入文本时,我的 HTC One M8 卡顿和滞后,但我知道查询速度并不慢,因为我测量查询只需要大约 7 毫秒。
我使用了方法分析、Systrace 和普通的旧Log
调试,并得出结论,每次我在 A、B 和 C 中的 s上进行的EditText
大约1,700次调用中键入一个字符。累积起来,只有大约 15 个独立的 s页面。我注意到每个都被调用了数百次,而不是像通常那样只调用一次或两次。onMeasure
TextView
RelativeLayout
TextView
onMeasure
问题
我不知道为什么EditText
在页面 B 中输入会导致TextView
页面 A 和 C 中的其他 s 也被“重新测量”。更重要的是,是否有人对为什么onMeasure
如此频繁地被调用有见解?而且,有谁知道显着减少调用次数的解决方案onMeasure
?
细节
这可能会有所帮助:我实际上能够onMeasure
通过删除 2 将调用次数减少到大约 900,RelativeLayout
这可能表明onMeasure
调用的传播开始于ViewPager
.