如何在不添加到android中的视图层次结构的情况下实现包含其他视图(如按钮、文本视图、复选框等)的CustomView



我正在尝试创建一个包含TextView(在左边(和Button(在右边(以及底部SeekBar的视图,类似这样。

|-----------------------------------|
| <TextView>               <Button> |
|  <           SeekBar           >  |
|-----------------------------------|

请注意,尖括号表示宽度,仅用于演示。

我可以通过创建一个CompoundView来做到这一点,但我想让事情保持平稳。

我将创造其他类似的作品,而且会有很多这样的作品。

请要求进一步澄清(如果需要(。

谢谢。

使用Framelayout并在旅途中添加视图怎么样?

public class Cell extends FrameLayout {
private TextView tv;
private Button btn;
private ProgressBar progressBar;

public Cell (Context context, int width, int height) {
super(context);
getLayoutParams().width = width;
getLayoutParams().height = height;

tv = new TextView(context);
FrameLayout.LayoutParams tvParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.TOP|Gravity.LEFT);
tv.setLayoutParams(tvParams);
btn = new Button(context);
FrameLayout.LayoutParams btnParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.TOP|Gravity.RIGHT);
btn.setLayoutParams(btnParams);
progressBar = new ProgressBar(context);
FrameLayout.LayoutParams progressParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM);
progressBar.setLayoutParams(progressParams);

addView(tv);
addView(btn);
addView(progressBar);
}
public void setText (String text) {
tv.setText(text);
}
public void setProgress (int progress) {
progressBar.setProgress(progress);
}
}

请注意,您可能还需要使用其他构造函数。

相关内容

  • 没有找到相关文章