Android 使用空白实现覆盖EditText小部件的onDraw()无效
我正在尝试创建一个“隐藏编辑视图”,它将在Android上的第三方GUI中为我提供文本编辑功能。我认为让它不绘制的最简单的方法就是用no op覆盖onDraw();但是它没有任何效果。我添加了一个log语句来检查是否正在调用它。有人知道为什么还在画吗Android 使用空白实现覆盖EditText小部件的onDraw()无效,android,user-interface,Android,User Interface,我正在尝试创建一个“隐藏编辑视图”,它将在Android上的第三方GUI中为我提供文本编辑功能。我认为让它不绘制的最简单的方法就是用no op覆盖onDraw();但是它没有任何效果。我添加了一个log语句来检查是否正在调用它。有人知道为什么还在画吗 private class HiddenEditText extends EditText { public HiddenEditText(Context context) { super(context);
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);
实现此结果的另一种方法是将
EditText
的背景指定为透明:
<EditText android:background="@android:color/transparent" ...
背景由View.draw()绘制。onDraw()由View.draw()调用,因此您需要遵循Mannaz的建议,将背景设置为透明颜色或仅将其设置为null。((EditText)findViewById(R.id.MyEditTextId)).setBackgroundDrawable(android.R.color.transparent);