如何在自定义视图中添加视图?
我有一个这样的类,大约有 10 个
public class DataItemPlainView extends View{
public DataItemPlainView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}}
。现在我需要将 TextView、ImageView 等放入此视图中。当我从某个地方调用它时,我想获取我的自定义视图。将视图设置为自定义布局也是一种情况。
谢谢
I have a class like that, and there are about 10 of them
public class DataItemPlainView extends View{
public DataItemPlainView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}}
Now I need to put TextView, ImageView etc inside this view. And when I call it from somewhere, I want to get my customView. setting a view to a custom layout is a case too.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的自定义视图需要扩展
ViewGroup
或扩展ViewGroup
的其他类之一。例如,如果RelativeLayout
或LinearLayout
布局适合您的自定义视图需要执行的操作,您可以从这些布局进行扩展。请记住,即使布局类也只是另一个
View
。他们只是碰巧有方法将其他视图添加为子视图,并且有代码来递归测量和绘制子视图。Your custom view needs to extend
ViewGroup
or one of the other classes that extendsViewGroup
. For example, you could extend fromRelativeLayout
orLinearLayout
if those layouts fits what your custom view needs to do.Remember, even the layout classes are just another
View
. They just happen to have methods to add other views as children and have code to recursively measure and draw their children.我会尝试扩展某种布局。请记住(在大多数情况下)它们也被视为视图。有关更多信息/决定选择哪种布局,请尝试在此处查看:
http:// /developer.android.com/guide/topics/ui/layout-objects.html
I would try extending some kind of Layout. Remember that (for the most part) they are also treated as Views. For more information/deciding which Layout to pick, try looking here:
http://developer.android.com/guide/topics/ui/layout-objects.html
通过调整边距来实现绝对定位是错误的。如果您需要利润,那么规模就不会扩大。
从 Android 窃取代码,修改它,然后使用“未弃用”的绝对布局。
AbsoluteLayout 已被弃用,因为他们不想支持它,而不是因为它不起作用。
管他的,他们的布局不能满足我们的需要,那么他们有什么建议呢?自定义视图。
所以这里是(重构,没有样式(puke)支持):
总的来说,Android UI 是一场噩梦。考虑在整个项目中使用网络视图。就使用系统而言,“还可以”,但该用户界面却是一团糟。
HTML 一直是样式和动态 UI 内容的最佳选择。除了定制绘制的 UI(就性能而言)之外,没有什么可以与它相媲美。
Messing with the margins to achieve absolute positioning is WRONG. That won't scale up if you ever need the margins.
Steal the code from Android, modify it, and then use your "not deprecated" absolute layout.
AbsoluteLayout is deprecated because they don't want to support it, not because it doesn't work.
Screw that, their layouts don't do what we need, so what do they recommend? custom view.
So here it is (refactored, without style (puke) support):
In general, Android UI is a nightmare. Consider using a webview for your entire project. As far as working with the system goes, "it's okay", but that UI is a train-wreck.
HTML has always been the way to go for styles and dynamic UI content. Nothing else rivals it, but custom drawn UI (in terms of performance).