问题标签 [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.
android - 循环遍历Android视图的所有子视图?
我正在开发一款适用于 Android 的游戏。为了帮助实现它,我的想法是创建一个视图的子类。然后我会插入这个类的几个实例作为主视图的子视图。每个实例都会处理检测它何时被按下(通过 OnTouchListener)。
我现在遇到的问题是如何遍历所有这些子视图,以便我可以读取它们的状态并处理它们?(即,当他们都达到某种状态时,应该发生一些事情)。
或者有没有更好的方法在屏幕上显示几个响应触摸的对象以及我可以检查其状态的对象?
android - 当提供的组视图不仅仅包含 TextView 时,如何保留 ExpandableListView 的默认列表项按下行为?
是否可以在提供不仅仅包含 TextView 的组视图时保留 ExpandableListView 的默认列表项按下行为。我指的行为是被按下的项目将背景颜色更改为黄色。
每次我提供一个包含例如 TextView 和 Button 的组视图时,我都会失去这种行为。
android - 扩展 RelativeLayout,并覆盖 dispatchDraw() 以创建可缩放的 ViewGroup
我见过一些人问如何一次缩放整个 ViewGroup(例如 RelativeLayout)。目前这是我需要实现的目标。对我来说,最明显的方法是将缩放比例因子作为单个变量保存在某处。并且在每个子视图的 onDraw() 方法中,该比例因子将在绘制图形之前应用于画布。
然而,在这样做之前,我试图变得聪明(哈哈——通常是个坏主意)并将RelativeLayout扩展到一个名为ZoomableRelativeLayout的类中。我的想法是,任何缩放转换都可以在覆盖的 dispatchDraw() 函数中只应用于 Canvas 一次,因此绝对不需要在任何子视图中单独应用缩放。
这是我在 ZoomableRelativeLayout 中所做的。它只是 RelativeLayout 的一个简单扩展,其中 dispatchDraw() 被覆盖:
mScaleFactor 由同一类中的 ScaleListener 操作。
它确实有效。我可以捏缩放 ZoomableRelativeLayout,并将所有视图正确地重新缩放在一起。
除非有问题。其中一些子视图是动画的,因此我会定期对它们调用 invalidate() 。当比例为 1 时,可以看到这些子视图定期重绘非常好。当比例不是 1 时,这些动画子视图只能在其查看区域的一部分中看到更新 - 或根本不更新 - 取决于缩放比例。
我最初的想法是,当调用单个子视图的 invalidate() 时,它可能会被系统单独重绘,而不是从父 RelativeLayout 的 dispatchDraw() 传递 Canvas,这意味着子视图最终会自行刷新没有应用缩放比例。但奇怪的是,在屏幕上重绘的子视图的元素是正确的缩放比例。就好像系统决定在支持位图中实际更新的区域保持未缩放 - 如果这有意义的话。换句话说,如果我有一个动画子视图,并且我从初始比例 1 逐渐放大,并且如果我们在缩放比例为 1 时在该子视图所在的区域放置一个假想的框, 那么对 invalidate() 的调用只会导致该假想框中的图形刷新。但是看到更新的图形正在以正确的规模进行。如果您放大到现在子视图已经完全远离它的比例为 1 的位置,那么它的任何部分都不会被刷新。我再举一个例子:想象我的子视图是一个通过在黄色和红色之间切换来动画的球。如果我稍微放大一点,使球向右和向下移动,在某个点上,您只会看到球的左上角四分之一的动画颜色。
如果我不断放大和缩小,我会看到子视图正确且完整地动画化。这是因为正在重绘整个 ViewGroup。
我希望这是有道理的; 我已经尽力解释了。我的可缩放 ViewGroup 策略是否有点失败?还有其他方法吗?
谢谢,
特雷夫
android - FrameLayout 的目的是什么,我们应该在什么场景下使用它?
FrameLayout
在 Android 中服务的目的是什么?有没有针对它设计的特定场景?
在我的 Android 应用程序中,我有一个场景,我必须显示两个ImageView
s,一个在另一个之上。这是一个.png
图像文件,在该图像上可绘制 9 个补丁。
ViewGroup
为此我应该使用哪个:RelativeLayout
或FrameLayout
?
我还想知道每个ViewGroup
s 应该用于的不同场景。
android - 如何修复 android 中的“android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5035)”错误
我有带有子元素(不是根)元素 RelativeLayout 的布局,然后我创建 ViewPager 并将其作为我的相对布局的子元素插入,所以就像
+相对布局(根)
|
+-- 相对布局(子)
|
+-- -- ViewPager
现在时刻 - 一切都好。
但是然后我尝试使用自己的布局将一些视图项添加到 ViewPager 然后我得到了错误
那个 ViewPager 将如何作为具有自己的子视图的 RelativeLayout 的子级?
android - Android - 如何将 DP 转换为 PX - 与绝对像素无关的密度
我有一种情况,我需要在运行时添加布局,如下所示:
1.Button
XML 中已经定义了一个布局:
2.当用户点击 时Button
,anEditText
和 anotherButton
被动态添加到现有布局中:
它在 Gingerbread (Android 2.3.5) 上正常工作:
并且不适用于 Kitkat(Android 4.4.2):
有人知道这个问题的解决方法吗?这是我使用的代码:
这是 XML 布局:
此外,当我们像这样以编程方式添加布局时,我们需要为每个布局元素手动设置一个 ID。
我已经做到了。他们来了:
android - 在android中拖动/移动ViewGroup
我有一个 ViewGroup,当用户长按到时,我想用手指在屏幕上移动它circleMenu
。我该如何移动ViewGroup
?
这是java:
这是 XML:
android - 剪贴板管理器未打开 EditText、WebView 的长按事件
在我的一个应用程序中,我已经WebView
实现了从 url 加载一些数据。一切都很完美。
但是,每当我尝试长按并选择应用程序的文本时WebView
,应用程序的文本就会崩溃并引发如下错误:即使我试图从EditText
onLongPress 事件中选择文本,它也会引发错误。
我只是无法理解为什么它会抛出这种错误。
我已经尝试过以下网站的建议:
http://code.google.com/p/android/issues/detail?id=19021
如何避免 IllegalStateException:旧应用程序中的 ActionBarContextView
如何避免 IllegalStateException:旧应用程序中的 ActionBarContextView
任何人都可以给我这个错误的解决方案。
谢谢你。
android - 更改特定首选项的背景不起作用
我有一个偏好,用作我的应用程序的设置。我想更改 listpref (listview) 中特定项目的背景颜色。我使用了下面的代码:
但我的偏好活动没有任何变化。我需要做的任何更正???
java - Android - 扩展 ViewGroup 而不是添加片段显示为空白
我正在扩展一个Fragment
被调用的Scanlist
. 它布局正确,看起来像我想要的那样。问题是我无法Override onInterceptTouchEvent
在扩展的Fragment
. 于是我想到了扩展ViewGroup
,Override onInterceptTouchEvent
然后把 my 添加Fragment
到ViewGroup
. 当我将我添加Fragment
到 中时ViewGroup
,Fragment
不会出现在ViewGroup
. 我知道ViewGroup
那里是因为我能够Log
但onInterceptTouchEvent
屏幕是空白的。
这是片段:
这是视图组
扫描列表.xml