我创建了自己的ViewGroup。我已经在View中添加了一个Widget,我从Eclipse Design Editor中得到了一个错误(我需要预览更快/更好的开发)。
public class MyViewGroup extends LinearLayout {
public MyViewGroup(Context context, AttributeSet attrs) {
super(context, attrs);
this.addView(new EditText(context)); // The Error Line
}
...
}
使用LayoutParams不会改变任何内容:
this.addView(new Button(mcontext),
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<...MyViewGroup android:layout_height="match_parent" android:layout_width="match_parent" android:layout_margin="2dip" android:id="@+id/Token01"> </...MyViewGroup>
</LinearLayout>
我在模拟器上看不到它。如果我删除“错误行”,Designer将不会出现错误。什么是我的失败或无法渲染Eclipse Designer?但为什么我在模拟器/设备上看不到它?我的目标是使用自定义视图和不带XML的ViewGroup创建此部分。
我希望你能帮助我,抱歉我的英语不好。
谢谢。
答案 0 :(得分:0)
如果我理解正确,代码中没有错误(运行时),但可视化编辑器无法正确呈现。
我曾经遇到过类似的问题(不完全记得),并且可以通过将可视化编辑器引擎更改为Honeycomb版本来解决它
为此,您首先需要安装Honeycomb SDK(API 11或更高版本)。然后,在右上角的可视化编辑器中,您可以选择它使用的SDK。改为3.x.也许这也适合你。
答案 1 :(得分:0)
我尝试了以下内容,它就像Android 2.3.1及更高版本的魅力一样。它不适用于2.2及更早版本。
public class MyViewGroup extends LinearLayout {
public MyViewGroup(Context context, AttributeSet attrs) {
super(context, attrs);
if (isInEditMode()) {
final EditText editText = new EditText(context);
editText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
addView(editText);
}
}
}
还要注意isInEditMode()的用法。