我最近更新了自定义视图,因此我可能会在画布中心添加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
仍然没有出现
答案 0 :(得分:0)
如果尚未找到答案。每个动态创建的视图都应该具有布局参数(WRAP_CONTENT,FILL_PARENT等),这就是为什么不显示的原因。有关详细信息,请相应地编辑您的问题。 一个例子可能是:
editText.setLayoutParams(new LayoutParams(WRAP_CONTENT,WRAP_CONTENT));
编辑:
现在您的问题是编辑文本不居中。好的,我可以给你一个概述,但我相信你必须从现在开始研究,因为有很多事情要做。首先,LinearLayout就是它所说的,是一种垂直或水平堆叠视图的布局。文本的位置不应该与屏幕的实际像素一起给出,而是与其他一些特定的布局参数一起给出。以Gravity为例,它将布局的内部视图与中心,左侧等对齐。添加LinearLayout的重力属性。
我希望它有所帮助