9

ユーザーが EditText にフォーカスまたは入力したときに、TextInputLayout ラベルを EditText の左側のドローアブルの上に垂直に表示することは可能ですか?

EditText の xml は次のとおりです。

 <android.support.design.widget.TextInputLayout
                android:id="@+id/completion_date_layout2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_weight="1"
                android:orientation="horizontal">

                <EditText
                    android:id="@+id/etTaskDate"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:hint="@string/title_completion_date"
                    android:inputType="text"
                    android:drawableLeft="@drawable/ic_date"
                    android:paddingBottom="15dp"
                    android:drawablePadding="5dp"
                    android:textSize="@dimen/fields_text_size"/>
            </android.support.design.widget.TextInputLayout>

目的の出力は次のとおりです。

ここに画像の説明を入力

これが私が得ている出力です:

ここに画像の説明を入力

4

4 に答える 4

0

この問題に関する回避策を作成しました。少し信頼できないかもしれませんが、私の側ではうまくいきます。コードは次のとおりです。

String spacer="        ";
EditText myEditText= (EditText)findViewById(R.id.myEditText);
myEditText.setText(spacer + "Today");
myEditText.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_calendar, 0, 0, 0);

私がここで行ったのは、editText 内のテキストの前にスペーサーを配置し、プログラムで左にドローアブルを追加することでした。

ただし、editText の内容を取得する前に、これらのスペースを必ず削除してください。

String title = myEditText.getText().toString().substring(8);

これは、「Today」という単語の前の 8 つのスペースを切り取ったことを意味します。

于 2016-03-01T19:14:28.147 に答える