问题标签 [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 投票
0 回答
20 浏览

android - (Android 或 AndroidTV)当我们用 (1,1) 设置 setMeasuredDimension 时,我们得到了黑屏

我遇到了一些问题。当我们将 setMeasuredDimension 设置为 (1,1) 时,它会变成黑屏。(我正在寻找后面的视图。但是当我们将(1,1)屏幕变为黑色时)如果我将setMeasuredDimension设置为(2,2),它的操作没有问题。你能说出原因吗?

我跟踪调用堆栈,我注意到当应用程序运行以显示 customView2 时,RenderNode.java 上的 nSetHasOverlappingRendering 函数被调用为 true,并且我们的电视设置为黑屏。

这是在 androidTV 上测试的,下面是我们的构建信息。compileSdkVersion:28 minSdkVersion:28 targetSdkVersion:28

谢谢大家。

-- MainActivity --(这是为了测试)

--testCustomView2(这是为了测试)--

-- activity_main.xml (res/layout)--

0 投票
1 回答
110 浏览

android - 3个textView项目的换行符根据它们的长度

问题有这个 UI 问题:

1) 我有 3 个textViews我想在一个父视图中保存。

2)我想在尽可能少的行中填充尽可能多的项目。

3) 仅在 2 个项目之间有分隔符。

推荐算法:

获取容器的宽度获取每个项目未指定的宽度(为此,我必须创建一个自定义 textView 来覆盖onMeasure())。

计算并放在一边"last line remaining width"

如果下一个 textView 可以适合最后一行剩余宽度: 

  • 使最后一个分隔符可见
  • 把它放在同一行并移动到下一个 textView 项目

别的:

  • 打开新行remaining width = (container's width - current item's width)
  • 使最后一个分隔符不可见
  • 将当前项目放在该行中(如果需要,换行)

我有两个选择:

  1. 使用水平线性布局的垂直线性布局。
  2. 使用约束布局。

我会填写一个列表列表,并通过代码填充水平线性布局。

或者通过代码填充约束布局(不太通用,我想更难)。

有没有更简单的解决方案?

在此处输入图像描述

0 投票
0 回答
206 浏览

android - ViewPager 滞后于测量

当 ViewPager 有 3 个页面时它可以正常工作,但是当页面数变成大约 10 个应用程序滞后时。每个页面都有嵌套的自定义视图

日志说:

为什么会发生取决于页数?设置屏幕页面(pager.offscreenPageLimit = 3)也无济于事

0 投票
1 回答
29 浏览

android - 向加载图像添加进度条

我正在尝试创建一个在从服务器下载图像时显示的进度条。此图像被加载到自定义视图中。(我需要它是自定义的,因为我在图像上绘制。)

我的解决方案是将自定义视图添加到片段布局下的 XML 中,并将其可见性标记为 Visibility.GONE。这在 XML 编辑器中有效,因为进度条占据了整个空间。隐形不起作用,因为它的位置仍然显示。

当图像路径提供给我的自定义视图时,问题就出现了。似乎在视图上设置 Visibility.GONE 意味着该视图未被测量。但我需要视图的尺寸来衡量位图应该有多大。

从自定义视图查看日志,它正在调用 onMeasured() 但它为时已晚。我需要在 setImage() 之前调用 onMeasure()。有没有更好的方法来处理这个问题,如果没有,是否有办法强制代码等到我知道视图已经完成了它的测量过程?

0 投票
1 回答
23 浏览

android - 如何在不复制和粘贴其父 onMeasure 实现的情况下修改自定义 TextView WRAP_CONTENT 高度?

我正在创建一个自定义TextView,我想知道是否可以在WRAP_CONTENT不复制和粘贴其父onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int)实现的情况下修改生成的高度计算。

假设我的WRAP_CONTENT计算等于父母的结果计算 + 16dp

0 投票
1 回答
136 浏览

xamarin - 在行定义中将高度设置为自动时,自定义控件占用了全部空间

我试图在 OnMeasure 方法中返回相同的大小。如果我将自定义控件的 RowDefinition 值设置为 auto,则自定义控件也会在下一行定义空间中呈现。

自定义控件以 3 行和 4 行呈现,第 4 行控件在屏幕上不可见。

示例:CustomControl 示例

[Xaml]

[C#]

当我在网格视图中添加自定义(MyBoxview)控件时,意味着工作正常。请对此提出任何建议。