API 21は、次の機能を使用するメソッドを提供していますか?
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
EditTextヒントをフロートにしようとしています。
ありがとう!
API 21は、次の機能を使用するメソッドを提供していますか?
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
EditTextヒントをフロートにしようとしています。
ありがとう!
回答:
次のコードをモジュールのbuild.gradleファイルに追加する必要があります。
implementation 'com.google.android.material:material:1.0.0'
そして、XMLでcom.google.android.material.textfield.TextInputLayoutを使用します。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/my_hint">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="UserName"/>
</com.google.android.material.textfield.TextInputLayout>
フローティングヒントEditText:
以下の依存関係をgradleに追加します:
compile 'com.android.support:design:22.2.0'
レイアウト:
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="UserName"/>
</android.support.design.widget.TextInputLayout>
22.2.0
implementation 'com.google.android.material:material:1.0.0-rc01'
です。
はい、2015年5月29日現在、この機能はAndroid Design Support Libraryで提供されています
このライブラリには、
Androidサポートライブラリは、gradle内の依存関係にインポートできます。
compile 'com.android.support:design:22.2.0'
GradlePleaseに含まれている必要があります!そしてそれを使用する例として:
<android.support.design.widget.TextInputLayout
android:id="@+id/to_text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/autoCompleteTextViewTo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="To"
android:layout_marginTop="45dp"
/>
</android.support.design.widget.TextInputLayout>
ところで、エディターは、AutoCompleteTextViewがTextInputLayout内で許可されていることを理解していない可能性があります。
Androidはネイティブメソッドを提供していません。AppCompatも同様です。
このライブラリを試してください:https : //github.com/rengwuxian/MaterialEditText
これはあなたが望むものかもしれません。
サポートライブラリをインポートします。プロジェクトのbuild.gradleファイルで、プロジェクトの依存関係に次の行を追加します。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
}
UIレイアウトで次のTextInputLayoutを使用します。
<android.support.design.widget.TextInputLayout
android:id="@+id/usernameWrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="Username"/>
</android.support.design.widget.TextInputLayout>
フローティングラベルをアニメーション化するには、setHintメソッドを使用してヒントを設定するだけなので、setContentView呼び出しの直後にTextInputLayoutでsetHintを呼び出します。
final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");
setHint()
。EditText
レイアウトxmlで設定されたヒントと連動します。
@andruboyのhttps://gist.github.com/chrisbanes/11247418の提案は、おそらくあなたの最善の策です。
https://github.com/thebnich/FloatingHintEditTextはappcompat-v7 v21.0.0で動作しますが、v21.0.0はのサブクラスのアクセントカラーをサポートしていないためEditText
、の下線はFloatingHintEditText
デフォルトの黒または白で塗りつぶされます。また、パディングはマテリアルスタイルに最適化されていないため、EditText
調整が必要になる場合があります。
いいえ、ありません。私はこれを将来のAPIリリースで期待しますが、今のところEditTextで立ち往生しています。別のオプションはこのライブラリです:https :
//github.com/marvinlabs/android-floatinglabel-widgets
InputTextLayoutをより簡単に使用するために、私はこのライブラリを作成しました。このライブラリは、XMLコードを半分未満にカットし、エラーメッセージとヒントメッセージを設定する機能と簡単な方法を提供します検証。 https://github.com/TeleClinic/SmartEditText
追加するだけ
compile 'com.github.TeleClinic:SmartEditText:0.1.0'
その後、次のようなことができます:
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
android:id="@+id/emailSmartEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:setLabel="Email"
app:setMandatoryErrorMsg="Mandatory field"
app:setRegexErrorMsg="Wrong email format"
app:setRegexType="EMAIL_VALIDATION" />
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
android:id="@+id/passwordSmartEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:setLabel="Password"
app:setMandatoryErrorMsg="Mandatory field"
app:setPasswordField="true"
app:setRegexErrorMsg="Weak password"
app:setRegexType="MEDIUM_PASSWORD_VALIDATION" />
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
android:id="@+id/ageSmartEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:setLabel="Age"
app:setMandatory="false"
app:setRegexErrorMsg="Is that really your age :D?"
app:setRegexString=".*\\d.*" />
Material Components LibraryがTextInputLayout
提供するものを使用します。
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Label">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.google.android.material.textfield.TextInputLayout>