将EditText添加到自定义LinearLayout

时间:2012-07-03 17:05:35

标签: android android-linearlayout

我最近更新了自定义视图,因此我可能会在画布中心添加EditText(可以这么说)。

onDraw代码添加到dispatchDraw后,我的自定义LinearLayout的工作方式与之前的自定义视图相同。

现在,如何在布局中间添加EditText smack?

到目前为止,我正在尝试这个:

EditText edit = new EditText(getContext());
edit.setText("My EditText");
edit.setTextSize((int)Math.ceil(thickness/2));
edit.setWidth((int)(diameter*0.07f));
edit.setX(centerX);
edit.setY(centerY);

addView(edit);

原谅一些变量,它们并不太重要,但我试图使用X和Y坐标添加EditText

感谢您的帮助。

更新:

我更新了我的LinearLayout构造函数以对comment_edit.xml文件进行通知,看看我是否可以通过这种方式使用它。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_comment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/edittext_comment"
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" 
        android:inputType="text"
        android:imeOptions="actionDone" />

</LinearLayout>

LinearLayout构造函数提取如下:

LayoutInflater inflater = LayoutInflater.from(context);
LinearLayout view = (LinearLayout) inflater.inflate(R.layout.comment_edit, this, false);
EditText edit = (EditText) view.findViewById(R.id.edittext_comment);
edit.setText("Add Comment");
edit.setX(112);
edit.setY(117);
addView(view);

我也尝试过:

LayoutInflater inflater = LayoutInflater.from(context);
LinearLayout view = (LinearLayout) inflater.inflate(R.layout.comment_edit, this, false);
EditText edit = (EditText) view.findViewById(R.id.edittext_comment);
edit.setText("Add Comment");
view.setX(112);
view.setY(117);
addView(view);

EditText仍然没有出现

1 个答案:

答案 0 :(得分:0)

如果尚未找到答案。每个动态创建的视图都应该具有布局参数(WRAP_CONTENT,FILL_PARENT等),这就是为什么不显示的原因。有关详细信息,请相应地编辑您的问题。 一个例子可能是:

editText.setLayoutParams(new LayoutParams(WRAP_CONTENT,WRAP_CONTENT));

编辑:

现在您的问题是编辑文本不居中。好的,我可以给你一个概述,但我相信你必须从现在开始研究,因为有很多事情要做。首先,LinearLayout就是它所说的,是一种垂直或水平堆叠视图的布局。文本的位置不应该与屏幕的实际像素一起给出,而是与其他一些特定的布局参数一起给出。以Gravity为例,它将布局的内部视图与中心,左侧等对齐。添加LinearLayout的重力属性。

我希望它有所帮助