gpt4 book ai didi

android - 自定义 RelativeLayout 的 subview 不会出现在前面

转载 作者:行者123 更新时间:2023-11-30 03:13:48 26 4
gpt4 key购买 nike

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

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 顺序受元素绘制顺序的影响,最后绘制的元素在最上面。尝试最后添加编辑文本。

关于android - 自定义 RelativeLayout 的 subview 不会出现在前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20486332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com