0

我想在特定坐标中将 EditText 添加到画布。像这样的东西:在此处输入图像描述

我尝试使用代码:

        LinearLayout layout = new LinearLayout(context);

        EditText textView = new EditText(context); 
        textView.setVisibility(View.VISIBLE);
        textView.setText("Hello world");

        layout.addView(textView);

        layout.measure(canvas.getWidth(), canvas.getHeight());
        layout.layout(0, 0, canvas.getWidth(), canvas.getHeight());
        layout.setGravity(Gravity.BOTTOM);

        layout.draw(canvas);

但是这个 EditText 没有在点击时显示键盘。你能帮助我吗?

4

1 回答 1

0

假设你真的需要在画布上绘制它......

在 res/layout 文件夹中创建一个新的 canvaslayout.xml。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:ems="5" >
        <requestFocus />
    </EditText>
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText1"
        android:layout_toRightOf="@+id/editText1"
        android:text="Edit Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>

也改代码

LinearLayout layout = findViewById(R.layout.canvaslayout); 
//LinearLayout layout = youractivity.findViewById(R.layout.canvasLayout); 
layout.draw(canvas);

以编程方式:

如果您不想使用 XML(我不明白为什么不这样做),您可以使用方法。您将线性布局更改为相对布局,并使用类似的方法将视图放在另一个视图的右侧。

RelativeLayout.LayoutParams relativeLayoutParams=
            new RelativeLayout.LayoutParams((RelativeLayout.LayoutParams.WRAP_CONTENT),(RelativeLayout.LayoutParams.WRAP_CONTENT));//create params for new textview

    relativeLayoutParams.addRule(RelativeLayout.RIGHT_OF, textView.getId());//to align the textview side by side
于 2013-03-02T21:16:09.710 回答