我有一个自定义的相对布局(扩展到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>
最佳答案
您以什么顺序添加元素?根据docs,z顺序受元素绘制顺序的影响,最后一件绘制在顶部。尝试最后添加edittext。
关于android - 自定义RelativeLayout的 subview 不在前面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20486332/