Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android cutom RelativeLayout的子视图不';不要站在前面_Android_Android Relativelayout_Android Canvas - Fatal编程技术网

Android cutom RelativeLayout的子视图不';不要站在前面

Android cutom RelativeLayout的子视图不';不要站在前面,android,android-relativelayout,android-canvas,Android,Android Relativelayout,Android Canvas,我有一个自定义的相对布局(一个扩展到RelativeLayout的类)。我使用dispatchDraw()方法在画布上绘制了一些位图。我想在画布上显示一个编辑文本框。因此,我创建了一个EditText的新实例,并将其放在前面。EditText会添加到布局中,但不会出现在前面。删除画布绘图代码时,将显示编辑文本。 如果您知道如何将EditText置于画布前面,请帮助我 public class EditCardLayout extends RelativeLayout {

我有一个自定义的相对布局(一个扩展到RelativeLayout的类)。我使用dispatchDraw()方法在画布上绘制了一些位图。我想在画布上显示一个编辑文本框。因此,我创建了一个EditText的新实例,并将其放在前面。EditText会添加到布局中,但不会出现在前面。删除画布绘图代码时,将显示编辑文本。 如果您知道如何将EditText置于画布前面,请帮助我

public class EditCardLayout extends RelativeLayout {

            public EditCardLayout (Context context, AttributeSet attrs) {       
                super(context, attrs);
                this.context = context;         
                editText = new EditText(context);
                editText.setText("My Text");
                addView( editText );
                editText.bringToFront();
             }
        @Override
            protected void dispatchDraw(Canvas canvas) {
                super.dispatchDraw(canvas);
                // some bitmaps are drawn here...
            }
        }
XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#eceadb"
    android:gravity="center">

    <editCard.EditCardLayout
       android:id="@+id/cardEditView"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentTop="true" />

</RelativeLayout>


添加元素的顺序是什么?根据,z顺序受元素绘制顺序的影响,最后一个元素绘制在顶部。请尝试最后添加编辑文本。

添加元素的顺序是什么?根据,z顺序受元素绘制顺序的影响,最后一个元素绘制在顶部。尝试最后添加edittext。

根据我的代码,我不绘制任何edittext视图。我画的是一些位图,我没有在上面的代码中展示。此EditText视图添加到相对布局中,该布局具有由dispatchdraw()绘制的画布。问题出现在子视图和父布局画布之间。我很难在没有看到其余代码的情况下进行评论。您可以包含绘图代码和xml吗?另外,是否有任何特殊原因需要使用dispatchDraw?您可以尝试将位图放在框架布局中,在RelativeLayout中,看看它是否有效。根据您的要求,我添加了draw和xml代码。当我在做一个卡片编辑应用程序时,活动的基本部分是通过这个dispatchDraw完成的。EditText视图用于获取卡上的用户输入。我认为创建另一个FrameLayout不起作用。你能在你的xml文件中的EditCardLayout下添加EditText吗?不。不像在这段代码中,我需要动态添加许多EditText。根据我的代码,我不绘制任何EditText视图。我画的是一些位图,我没有在上面的代码中展示。此EditText视图添加到相对布局中,该布局具有由dispatchdraw()绘制的画布。问题出现在子视图和父布局画布之间。我很难在没有看到其余代码的情况下进行评论。您可以包含绘图代码和xml吗?另外,是否有任何特殊原因需要使用dispatchDraw?您可以尝试将位图放在框架布局中,在RelativeLayout中,看看它是否有效。根据您的要求,我添加了draw和xml代码。当我在做一个卡片编辑应用程序时,活动的基本部分是通过这个dispatchDraw完成的。EditText视图用于获取卡上的用户输入。我认为创建另一个FrameLayout是行不通的。你能在xml文件中的EditCardLayout下添加EditText吗?不。不像在这段代码中,我需要动态添加许多EditText。