问题标签 [android-viewgroup]

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 回答
171 浏览

android-custom-view - 自定义 ViewGroup 中的自定义视图在 RelativeLayout 中偏移时不显示

我有一个自定义视图类 (PinView),它将基于某些属性定位在自定义 ViewGroup (RightAngleTriangleView) 中。但是,当它相对于 RelativeLayout 中的另一个视图放置时,PinView 不会显示。请参见下面的代码:

直角三角形视图

PinView

活动 XML

上面的代码是用于突出问题的 Activity 的 XML。我还截取了问题的屏幕截图(如下)。最上角的三角形很好,显示了内部 PinView。但是,其他两个(第一个的下方和右侧)不显示 PinView,即使代码完全相同,并且我已通过 Log 确认预期的 PinView 位置似乎没问题。

问题截图

我究竟做错了什么?

0 投票
0 回答
113 浏览

android - 在 ViewGroup 中覆盖父级的一半宽度

我有一个 ViewGroup (我们称之为A),其中添加了一个孩子。我希望A是父级宽度的一半。

现在在 onMeasure 中,我将宽度设置为 widthMeasureSpec 中的父尺寸的一半,但我面临的问题是 A 视图覆盖了屏幕的一半,但由于没有正确放置子项,因此测量结果不正确。

下面是我的 onMeasure 和 onLayout。

我添加了一个示例视图以供参考。

在此处输入图像描述

0 投票
2 回答
327 浏览

android - 两次渲染 ViewGroup 的内容

我正在尝试为 Google Cardboard 创建一种 HUD 叠加层。

需要复制 HUD(每只眼睛一个)。一个简单的解决方案是手动将所有 XML 元素复制到另一个视图中,但给它们不同的名称。这感觉像是一种糟糕的方法,因为它涉及大量代码重复。

因此,我为 ViewGroup 提出了以下解决方案,该解决方案应该将所有内容渲染两次:

第一个问题是 dispatchDraw 或 onDraw 都不会被调用,除非是一两次。当子视图无效时不会调用它。

第二个问题是具有 MATCH_PARENT 的元素的背景呈现在 ViewGroups 内部边界之外:

200DP宽度 在此处输入图像描述

MATCH_PARENT 在此处输入图像描述

这种方法是希望太多,还是我想错了?创建一个完全自定义的视图来处理复杂的布局和图像似乎需要做很多工作,而复制我的布局似乎是糟糕的设计。

0 投票
1 回答
1578 浏览

android - Android复合视图:无法使子视图匹配父视图

我创建了一个从 FrameLayout 继承的自定义视图(复合视图),其中包含几个子视图:

MediaComponentView.java:

view_media_component.xml:

复合视图的用法:

问题是“image_view”的布局不正确。它与父级不匹配。

我通过设置背景来检查 MediaComponentView 本身的大小是否正确。它有正确的尺寸。

但是子视图的大小不正确。我猜这是因为 MediaComponentView 中重写了 onMeasure() 方法。

任何帮助或解释将不胜感激。

0 投票
1 回答
670 浏览

android - 从 Activity 传递资源 id 以初始化自定义 ViewGroup

这是我之前的问题的后续,@pskink 建议我实现自定义 ViewGroup 来绘制我需要的内容。我使用硬编码值成功地制作了原型。我想将它移动到可以从 Activity 传递初始化参数的更高级别。我需要传递资源 id 并打开要在 onPaint 方法中使用的图像。

这就是活动。我可以在那里获取 ViewGroup 实例,但它已经实例化,因此在其构造函数中传递资源 ID 是没有意义的。我尝试使用 setter,但我需要一个 Context 来从资源初始化 Drawable。

ViewGroup 的 setter 没有像构造函数那样的上下文。

如何从这个问题中得到?我需要在绘制 ViewGroup 之前传递初始化参数。Activity 有许多 onXY() 方法可以覆盖,但没有类似的 ViewGroup 方法。它的生命周期是什么?

0 投票
0 回答
551 浏览

android-layout - (动画)在片段中隐藏工具栏

嘿,当我在editText中单击时,我想隐藏我的工具栏因此我添加了这些行

在我的 onCreateView 方法中,我添加了过渡效果,但现在工具栏的动画看起来很糟糕..

我只是想让工具栏滚动出来并将视图移到顶部?“简单”的动画风格可以做到这一点吗?

0 投票
1 回答
452 浏览

android - 如何在childlayout中更新textview动态创建的textview?

XML 布局:

add_item.xml

add_inner_item.Xml

使用以下方法动态添加视图。

我有一个动态创建的布局,我想从按钮单击视图之外更新子文本视图。我已经尝试过这段代码。但没有任何改变。任何人都可以对此示例提出建议。

0 投票
1 回答
546 浏览

android - 将 RadioButton 投射到 ViewGroup

我收到一个 classcastingexception,指出当我通过单击 RadioButton 从活动转换到片段时,无法将 RadioButton 转换为 ViewGroup。有什么建议吗,谢谢?

0 投票
2 回答
272 浏览

android - Android - 获取可见矩形的百分比

我试图指出某个视图(比如视图 A)是否 100% 可见,这意味着,如果它是 100x100 视图,我想确保显示所有 10000 像素。

样本:

应该返回100 % 而:

应该返回大约 50%。

我试过测量 globalVisibleRect、localVisibleRect、hitTest、drawableRect、focusableRect,无论视图是否完全可见,它们都是一样的。

有任何想法吗?

0 投票
0 回答
109 浏览

android - 当添加或删除另一个视图时,ViewGroup 子类“调整”子视图,我该如何防止这种情况

每当添加或删除新视图时,都会调整所有内容。我可以看到在大多数用例中这是一件非常好的事情,但不幸的是,对我来说,这是我需要避免的事情。我假设每当删除或添加视图时都会调用 onMeasure() ,从而导致它改变我给它的 X 和 Y 坐标,但是我想“禁用”它。

我的应用程序利用用户在运行时确定的动态移动和调整视图大小,因此,如果每当用户删除视图或添加新视图时,它会改变所有内容,这将非常烦人。另外我认为(尽管不确定)防止这种情况只会有助于提高性能,对吗?不测量每个视图,事实上,我根本不希望它测量它,因为再一次,用户决定了视图的大小和位置,而不是线性布局。

我正在考虑创建自己的 ViewGroup,但我以前从未这样做过。我知道您可以扩展一个预先存在的布局,如 LinearLayout 或 RelativeLayout,但我需要帮助确定我应该使用哪一个,以及是否应该在 ViewGroup 上创建一个完整的。

正如我所说,它根本不需要测量视图,事实上,如果可能的话,一个什么都不做的容器将是最佳的,我认为会产生更多的性能。谁能帮我解决这个问题?

概括:

需要一种方法来阻止预先存在的 ViewGroup、IE FrameLayout、RelativeLayout 和 LinearLayout,它们不会调整视图的位置或大小,或者创建一个根本不进行任何测量的新 ViewGroup,因为用户定义了运行时的位置和大小,不应由容器更改。

如果这是一个不好的问题或存在其他可以回答此问题的问题,请告诉我。