问题标签 [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.

0 投票
1 回答
125 浏览

java - 设置自定义视图的大小

我正在创建一个自定义视图。在onDraw方法中,我绘制了一个位图。Bitmaps可以有不同的高度。我需要在图片加载后设置视图的高度。我得到onMeasureonDraw在日志中。onMeasure之前被调用onDraw。在教程中说大小应该设置在onMeasure. 如果高度的计算很耗时并且我需要在计算后设置它怎么办?在调用 onDraw 之前我必须预先计算尺寸吗?

0 投票
1 回答
3509 浏览

java - 获取 RecyclerView 的总高度

我试图获得总高度RecyclerView以将其分配给它的父级Dialog以包装它。

我尝试这种方式来获得它:

但它适用于某些设备并在其他一些设备上例外:

java.lang.NullPointerException at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:493) at android.view.View.measure(View.java:15630)

xml内容是这样的:

我哪里错了?

0 投票
2 回答
615 浏览

android - 扩展覆盖 onMeasure() 的视图

我有一个view1像这样扩展 FrameLayout 并覆盖 onMeasure() 的视图,因此它呈现为正方形:

现在我想创建另一个view2扩展视图view1,但现在我希望view2高度等于父级,从而覆盖整个屏幕。截至目前,我也把它当作一个正方形。

我如何实现这一目标?

0 投票
0 回答
1302 浏览

android - Scrollview FillViewport 滚动不起作用(MPAndroidChart)

目标:滚动视图中的多个图表(首先只是垂直可滚动,但在具有 2 列的 Gridview 中首选)

问题:垂直滚动不起作用

提示:图表的大小(使用 onMeasure)和 fillViewport = true 有效

从 stackoverflow 尝试了很多解决方案(使用 wrap_content、match_parent、weights 等),但没有成功。

MPAndroidChart 的变化

布局文件

MPAndroidChart.PieChartSquare 从原始 PieChart 扩展,但我添加了以下代码来调整字符大小。

谢谢并恭祝安康

更新

我使用自定义 Gridview 完成了这个技巧,然后为每个图表添加了一个 chartitem.xml。不幸的是,PieChartSquare 不起作用(什么都看不见),所以我必须使用 PieChart。

所以我没有得到正确的图表大小。它总是非常非常小。

0 投票
1 回答
508 浏览

android - onMeasure() 方法的视图和视图组有什么区别?

我正在学习一个自定义组件,我发现方法的viewand有一些不同。例如,有人调用,最后有人使用。区别在哪里?意味着什么?viewgrouponMeasure()super.onMeasuresetMeasuredDimensionmeasureChildren()

这是我第一次来这个社区,希望能得到我想要的答案,谢谢。

0 投票
1 回答
717 浏览

android - 如何在 onResume 中重绘自定义视图?

我在视图类的 onMeasure() 中对长度和高度大小进行了一些编辑,制作了一个自定义的图像视图。我已经在我的 Main Activity 的onCreate方法中设置了这个内容,但是这些更改不适用于我的 imageview。有什么解决方案可以在onResume方法中重绘我的 imageview 吗?因此,我在视图类中对 onMeasure() 所做的所有更改都将适用。

谁能帮我这个?非常感谢 !

0 投票
2 回答
295 浏览

android - setMeasuredDimension 后的 setGravity 不起作用

我创建了课程customTextView extent TextView 并设置textAlignment为中心。在onMeasure我改变了textview宽度。

在那之后,textview align change to left and I used this.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); but it didn't change to center

0 投票
1 回答
2469 浏览

android - Android:如何以编程方式更改图层列表中 GradientDrawable 的大小

我在文件layers.xml中有一个图层列表:

这在自定义的 FrameLayout customView.xml 中使用:

它本身用于例如

此外,我有 CustomView.java 类来编辑 customView(尤其是图层)的行为。

在那里,我试图根据 customView 的大小(和参数“比率”)来更新层列表的大小。我试过这样:

所以,这是很多代码......不幸的是,这不能正常工作。如果第一次加载框架布局,我只能看到一个非常小的矩形。

只有当我来回切换到此视图时,才会按照我的意愿应用大小:

有人有想法吗?

0 投票
1 回答
6154 浏览

android - 子视图的 onMeasure 和 onLayout 在其父视图的 requestLayout 之后不会被调用

我正在尝试了解 Android 如何测量和布置视图。我创建了一个带有自定义视图和视图组的示例应用程序。

自定义视图组

自定义视图

主要活动

activity_main.xml

当活动开始时onMeasureonLayoutonDraw在标记为CustomVieGroup1和的视图组上被调用CustomVieGroup2。每个视图组在其子视图上调用这些方法。没关系。我明白了。

当我调用标记为 CustomVieGroup 1requestLayout的视图组时,在 CustomVieGroup 1上调用和调用。该小组在他们的孩子身上调用这些方法。我明白了。onMeasureonLayoutonDraw

当我调用requestLayout标记为 CustomVieGroup 2、和的视图组时onMeasure,在 CustomVieGroup 2上调用。该小组在他们的孩子身上调用这些方法。我也理解。onLayoutonDraw

但是当我requestLayout用 id 调用视图时,activity_main没有调用or 。为什么?我期望,并且会在两者上调用and (即带有 id 的视图的 cgildren )onMeasureonLayoutCustomVieGroup1CustomVieGroup2onMeasureonLayoutonDrawCustomVieGroup1CustomVieGroup2activity_main

根据requestLayout 的文档

这将安排视图树的布局传递。

0 投票
2 回答
1192 浏览

java - Android: java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext 无法转换为 android.app.Activity"

这些是详细的问题:

我的代码是:

作为一个新生,我渴望得到你的帮助。谢谢!