【问题标题】:Android: Add button in a ViewAndroid:在视图中添加按钮
【发布时间】:2012-10-17 12:25:16
【问题描述】:

正在做一个 Titanium 模块(只是 Android 代码),我需要在视图中显示一个按钮,因此没有 Activity 和 xml 布局。 我有以下代码在我的视图中添加按钮:

public class MyView extends ViewGroup {
 public MyView(Context context) {
  super(context);
  ...
  Button b=new Button(context);
  b.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT)); 
  b.setText("Some Text");
  this.addView(b);
 }
}

在 StackOverflow 中搜索,这段代码应该可以工作...但是该按钮从未显示。 如何向视图或视图组添加按钮?

编辑添加 onLayout() 方法:

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
     LinearLayout l1=new LinearLayout(_context);
     l1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
     l1.setOrientation(LinearLayout.VERTICAL);
     Button b1=new Button(_context);
     b1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     b1.setText("Button");
     l1.addView(b1);

     this.addView(l1);
}

感谢您的帮助。-

【问题讨论】:

  • 您介意发布onLayout 方法吗?另外,您的视图是否设置了一些尺寸?
  • @Luksprog onLayout 方法已添加到问题中。我的 View 的大小是显示的宽度和高度。
  • onLayout 方法中,您必须通过使用所需坐标调用布局方法来布局孩子,而不是再次添加视图。如果您仍然想扩展 ViewGroup,这里有一个教程,它很好地解释了从 ViewGroup parleys.com/#st=5&id=2191&sl=1 构建自定义视图

标签: android button view viewgroup


【解决方案1】:

ViewGroup 是抽象类。而且我认为您错误地实施了它的一些方法。尝试使用任何具体的布局,例如LinearLayout,而不是。

【讨论】:

  • 我只是扩展 ViewGroup 以将视图添加到 MyView。无论如何,我使用线性布局来呈现视图。我已将我的 onLayout 方法添加到我的问题中。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-06
  • 2017-02-23
  • 2012-08-06
  • 1970-01-01
相关资源
最近更新 更多