问题标签 [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.
android - Android:在自定义视图组中使用带有自定义视图的 onTouchEvent
我有一个自定义视图,我称之为“Node”,它是一个名为“NodeGrid”的自定义 ViewGroup 的子视图。“NodeGrid”类更具体地扩展了RelativeLayout。
我的自定义视图类(“节点”)中有以下代码片段:
问题:
在此代码中设置断点后,似乎仅针对MotionEvent.ACTION_DOWN情况调用onTouchEvent,但对于其他两种情况(“动作向上”或“动作移动”)均未调用。有谁知道可能导致这种情况发生的任何事情?
另外(可能相关):
视图如何添加到 ViewGroup 中是否重要?我注意到除了“addView”之外,还有其他方法可以将子项添加到 ViewGroup,例如“addFocusables”和“addTouchables”。现在我只是使用“addView”将子视图添加到 ViewGroup。
android - RelativeLayout:将视图与同级视图组的子视图对齐
我正在尝试使用RelativeLayout和RadioGroup在android中创建一个标签栏,该标签栏有一个指示器,该指示器将滑动以指示RadioGroup中的活动RadioButton。
这些是自定义的单选按钮,实际上是在文本上带有图标的矩形,所有内容居中,使用自定义状态选择器作为背景。
这是我当前的层次结构:
我的想法是,当单击单选按钮时,我会将指示器与所选单选按钮的顶部和底部对齐(并为其设置动画)。但是,它似乎layout_align<Edge>
只适用于兄弟元素,不适用于另一个视图组的成员,即我可以对齐 RadioGroup 本身,但不能对齐其中的 RadioButton。
我曾想过将指示器作为 RadioGroup 的成员,但由于 RadioGroup 是 LinearLayout 的扩展,因此似乎没有办法将其放置在给定 RadioButton 的边缘。
谁能想到我如何解决这个问题?或者也许有比我的动画对齐按钮技术更好的解决方案?
更新 在@superjos 的帮助下,我设法很好地解决了这个问题。
我必须给每个按钮一个已知的高度而不是使用wrap_content
(不理想,但对于这个项目,它应该可以正常工作)。使指示器高度与按钮高度匹配。确保 RadioGroup 设置为包裹内容并在父视图中垂直居中。将指示器设置为alignTop
和toRightOf
RadioGroup。然后,对于按钮单击侦听器:
android - 重新绘制有关方向变化的视图
我正在使用 aTextView
并且ViewGroup
我正在使用它ViewGroup
来创建一个类似可滚动 UI 的画廊。它的TextView
整个背景都填充了一种颜色。一切工作正常,除了当我将我orientation
的从portrait
更改为landscape
更改portrait
,反之亦然时,TextView's
原始尺寸保持不变,因此,绘图看起来迷失方向。但是一旦我平移或滚动,它就会重新更正。我的扩展类ViewGroup
不处理绘图部分,我尝试了以下方法:
- 使
ViewGroup
. - 使当前显示的视图无效。
- 实施
onConfigurationChanged
(在清单中进行适当的更改)。
我不想在TextView
更改配置后重新创建 currentState 的过程。这是我在以下位置添加视图的代码片段ViewGroup
:-
android - Android:使用 MotionEvent 对自定义 ViewGroup 中的 View 进行拖放定位
在我创建的自定义 ViewGroup 上定位视图元素时遇到问题,特别是在拖放情况下。我的目标是 Android 2.2 及更高版本,所以我不能真正使用 Android 3 中出现的拖放 API。
我的自定义 ViewGroup 称为“NodeGrid”,它扩展了“RelativeLayout”。它的onLayout方法被覆盖,如下所示:
“NodeGrid”的子节点属于“NodeView”类型(如您在上面的代码中所见)。NodeView 只是我创建的一个自定义 View 类。它包含一个名为“DataContext”的成员,它是一个视图模型类,其中包含一些 getter/setter,其中包含有关 NodeGrid 上的 NodeView 实例的位置信息。
我的“NodeView”类捕获用户的触摸事件,因此用户可以简单地将节点拖放到网格上的任何位置。事件处理程序如下所示:
我的问题是被拖动的视图没有像我期望的那样定位在我的“NodeGrid”上。当我拖动它时,x 轴位置似乎是正确的,但 y 轴位置在任何时候都会偏移一些恒定数量的像素。什么会导致这种情况?我尝试使用 getX() 和 getY() 方法而不是 getRawX() 和 getRawY(),但这只会导致情况更糟。
我不确定 getRawX() 和 getRawY() 是返回 px 单位还是 dip 单位给我,所以期待它返回 px 单位,我尝试在将新的 x 和 y 值分配给之前将它们转换为 dip 单位节点,但这只是减少了偏移量,并没有消除它。
什么可能导致我触摸的位置和节点的位置不同?
android - android中ViewGroup的addViewInLayout()的行为
我正在创建自定义ViewGroup
,我onLayout
在其中使用我调用的方法addViewInLayout()
,ViewGroup
但它是View
水平添加唯一的。
如何强制它像AndroidView
一样垂直添加ListView
寻求帮助。
android - Android:将 FEATURE_NO_TITLE 与自定义 ViewGroup 一起使用会在窗口顶部留下空间
我正在尝试创建一个自定义 ViewGroup,并且我想将它与全屏应用程序一起使用。我正在使用“requestWindowFeature(Window.FEATURE_NO_TITLE)”来隐藏标题栏。标题栏未显示,但仍占用窗口顶部的空间。
上面的图像是使用以下代码生成的:
有趣的是,Android 为我的自定义布局提供了这个空间。我将 CustomLayout 设置为我的 Activity 的根布局。在“onLayout”的日志中接收“t = 25”,这就是推动我的布局下降的原因。我不知道我做错了什么,使 Android 成为“t = 25”(这正是标题栏的高度)。
我在 Android SDK 2.1 中运行此代码,但我也发生在 Android 2.2 中。
编辑:如果我将 CustomLayout 类更改为某些默认布局(例如 LinearLayout),空间就会消失。当然,Android SDK 的默认布局不会创建我要创建的布局,这就是我创建一个的原因。
尽管我正在创建的布局有些复杂,但这是我可以创建的最小代码来重现我的布局问题。
android - 将视图组添加到视图组
我希望能够以编程方式将视图组添加到另一个视图组。两者都在 xml 中定义如下,以及我的 onCreate 方法:
主.xml:
secondlayout.xml:
创建:
android - 在 MapOverlay Tapping 上启动新 Activity
我是 Android 新手。我正在构建一个具有 5 个选项卡的选项卡式应用程序。我使用不同的视图组,每个选项卡都有根据需要和子活动的可响应视图组。第一个选项卡是具有不同子活动的 TabGroupHome。TabGroupHome 首先启动 GoogleMapActivity (具有overlayItems)作为其子活动。这些叠加层代表了不同的用户。我从一个 JSONArray 中获取这些用户的数据,该 JSONArray 由服务器上的一个 php 文件返回,该文件具有不同用户的数据。当我启动我的应用程序时,它的外观->
发射视图!
它在顶部有一个具有不同按钮的操作栏(例如,列表、配置文件和刷新)。当我单击列表时,它会显示所有用户的列表->
&当我单击 listItem 时,它会显示上面指出的响应用户的完整配置文件
我坚持的地方是-> ??? 当我点击 MapPin 时,我想显示此用户个人资料...
我的代码是->
我的 HelloItemizedOverlay 类是->
“onTap”中的 FanProfile 与我单击用户列表的 listItem 时调用的活动相同!
上面的代码有效,但它在我的 tabView 上启动视图,它隐藏了我的选项卡...
[这个] http://i.stack.imgur.com/lgT2G.png
我没有得到我犯错或做错的地方。
你的建议对我很有价值!!!
我将不胜感激获得解决此问题的指针或示例代码...
android - Android 视图和视图组
在 AndroidViewGroup
中继承自View
. AViewGroup
是一个装有 的容器Views
。
为什么 Android 的人们将这种关系定义为Inheritance
而不是组合。由于ViewGroup
包含Views
不应该是组合物吗?
android - 自定义视图组中的视图未显示
我最近深入研究了创建自定义 ViewGroups 并遇到了一个我无法弄清楚的问题。
我有 2 个 ViewGroups - ViewManager 和 Article
ViewManager 只是在上一篇文章下方布置一篇文章(即像垂直线性布局)
文章安排了几个 TextView 和一个 ImageView,如图所示。创建单个文章并将其添加到 ViewManager 可以正常工作,并且所有内容都会显示,但是当我添加第二个文章时,文章的任何内容都不可见。
那么为什么没有 TextViews 或 ImageView 出现(注意蓝色条是用 onDraw() 中的 canvas.drawRect() 绘制的)。我还打印了(通过 logcat)子视图的绑定值(即 getLeft()/Top()/Right()/Bottom() in drawChild(),它们看起来都很好
那么有人知道我做错了什么吗?
文章论量法
和 onLayout 方法
附带说明一下,可以像这样使用 LayoutParams.WRAP_CONTENT 作为 makeMeasureSpec() 的参数吗?