对具有空白实现的EditText小部件重写onDraw()无效

时间:2010-10-15 18:45:01

标签: android user-interface

我正在尝试创建一个“隐藏的编辑视图”,它将在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);

2 个答案:

答案 0 :(得分:1)

实现此结果的另一种方法是将EditText的背景指定为透明:

<EditText android:background="@android:color/transparent" ...

答案 1 :(得分:1)

背景由View.draw()绘制。 onDraw()由View.draw()调用,因此您需要遵循Mannaz的建议并将背景设置为透明色或仅将其设置为null。