我正在尝试创建一个“隐藏的编辑视图”,它将在Android上的第三方GUI中提供文本编辑功能。我认为使其不绘制的最简单方法是使用no-op覆盖onDraw();但它没有效果。我添加了一个日志语句来检查它是否被调用。有没有人知道它为什么还在被吸引?
private class HiddenEditText extends EditText
{
public HiddenEditText(Context context)
{
super(context);
}
@Override
protected void onDraw(Canvas canvas)
{
Log.e("DBG", "onDraw()");
}
}
// ...
EditText EditTextGreen = new HiddenEditText(this);
EditTextGreen.setFocusable(true);
EditTextGreen.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
layout.addView(EditTextGreen, 0);
答案 0 :(得分:1)
实现此结果的另一种方法是将EditText
的背景指定为透明:
<EditText android:background="@android:color/transparent" ...
答案 1 :(得分:1)
背景由View.draw()绘制。 onDraw()由View.draw()调用,因此您需要遵循Mannaz的建议并将背景设置为透明色或仅将其设置为null。