私はタブレット用の小さなアプリ、ディスプレイサインのようなものを作っています。
表示記号の中央に配置されたテキスト要素がいくつかあります。タップすると、editTextに変換されます。編集テキストは、その中のテキストが中央に揃えられ、コンテンツがラップされるようにしたいです。しかし、何かを入力すると、editTextは両方の方法で展開し、テキストを中央に揃えて保持します。右揃えのテキスト要素でも同じことをしたいです(唯一の違いは、編集テキストが左方向にのみ拡張されることです)。
今すぐこれを行おうとすると、左に向かって拡大します。これは、編集テキスト要素をレイアウトするための私のコードです
tempView=new EditText(this);
((EditText) tempView).setTextSize(shrinkedFontSize);
((EditText) tempView).setTypeface(tf);
((EditText) tempView).setText(tempInput.getText());
((EditText) tempView).setGravity(Gravity.CENTER);
layout.addView(tempView, tempParams);
レイアウトの幅をレイアウトパラメーターでWrap_contentとして設定しています。また、編集テキストの左上隅のレイアウトパラメーターでxとyを指定しました。
これを達成する方法はありますか?
これで問題が解決するはずです。
_EditText t = (EditText) findViewById(R.id.text);
t.setGravity(Gravity.CENTER);
_
... XMLで:
_<EditText
Android:id="@+id/text"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:inputType="text" />
_
EditText inputField入力テキストを水平方向の中央に配置します。
_layout_width
_を_fill_parent
_から150 dpまたは他のサイズに変更できますが、_wrap_content
_は変更できません。テキストは水平方向の中央に配置されます。
入力したテキストを左揃えまたは右揃えにするt.setGravity(Gravity.RIGHT);
またはLEFT
を設定します。
これは、テスト済みのシンプルなソリューションです。レイアウトXMLファイルにAndroid:gravity="center"
を追加して、テキストをEditTextの中央に揃えます。 Javaコードを変更する必要はありません。
<EditText
Android:id="@+id/LastName"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/back"
Android:inputType="numberDecimal"
Android:gravity="center" />