2

EditText コントロールに問題があり、完全に非表示にする方法がわかりません。私の要件は、InputMethodManager を使用して webview コントロールから Numeric SIP を表示することであり、showSoftInput は常にデフォルトで英数字キーボードになります。そのため、非表示の EditText コントロールを作成し、そのコントロールから入力タイプを変更しましたが、正常に機能しましたが、問題は、非表示のコントロールに引き続きアクセスでき、常に左上隅に表示されることです。非表示の EdiTtext を編集中のコントロールと正確に移動/整列させ、それを完全に非表示にする方法はありますか。

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);

EditText 定義:

<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

使用を非表示にしたいeditText.setVisibility(View.INVISIBLE)場合は、完全になくなり、UI でスペースが割り当てられないようにする場合は、次のコマンドを使用します。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 に答える