2

我遇到了 EditText 控件的问题,不知道如何使它完全隐藏。我的要求是使用 InputMethodManager 从 webview 控件显示数字 SIP,并且 showSoftInput 始终默认为字母数字键盘。所以我创建了一个隐藏的 EditText 控件并更改了该控件的输入类型,它工作正常,但问题是隐藏的控件仍然可以访问,并且它总是显示在左上角。有没有办法将隐藏的 EditTtext 与我正在编辑的控件完全移动/对齐并完全隐藏它。

InputMethodManager imm;
if (mWebEditText == null)
{
    mWebEditText = new WebEditText(Common.mainActivity.getApplicationContext(),view.getView());
}

mWebEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
mWebEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);

AbsoluteLayout webEditTextPanel = (AbsoluteLayout) Common.mainActivity.findViewById(R.id.editext_panel);
webEditTextPanel.removeAllViews();
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(area.width(), area.height());
lp.leftMargin = area.left;
lp.topMargin = area.top;
webEditTextPanel.addView(mWebEditText, lp);

mWebEditText.setVisibility(View.VISIBLE); 
mWebEditText.setCursorVisible(false); 
mWebEditText.setBackgroundColor(0x00FFFFFF); // If I do this the bounding rectangle is hidden but if we tap on top/left corner then we can see the edit box
mWebEditText.requestFocus();
imm.showSoftInput(mWebEditText, 0);

编辑文本定义:

<AbsoluteLayout android:id="@+id/editext_panel" android:layout_width="wrap_content"   android:layout_height="wrap_content" android:clickable="false"    android:focusableInTouchMode="false" android:visibility="visible">
</AbsoluteLayout>

截屏:

上/左角的边界矩形

4

2 回答 2

2

If you want to hide use editText.setVisibility(View.INVISIBLE) if you want that it is completely gone and no space is allotted to it in UI then use the command editText.setVisibility(View.GONE)

于 2013-01-31T10:37:31.100 回答
0

将控件移出屏幕效果很好。即控件被隐藏并且数字SIP 弹出很好。

AbsoluteLayout.LayoutParams lp = new AbsoluteLayout.LayoutParams(area.width(), area.height(), -200, -200);
于 2013-02-01T11:06:33.387 回答