API 21は、次の機能を使用する方法を提供しますか?
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
EditTextヒントをフロートしようとしています。
ありがとう!
フローティングヒント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>
はい、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");
@ -andruboyの https://Gist.github.com/chrisbanes/11247418 の提案はおそらく最善の策です。
https://github.com/thebnich/FloatingHintEditText appcompat-v7 v21.0.0での動作の種類ですが、v21.0.0はEditText
のサブクラスでアクセントカラーをサポートしていないため、FloatingHintEditText
の下線はデフォルトの黒または白一色です。また、パディングはマテリアルスタイルEditText
に対して最適化されていないため、調整が必要になる場合があります。
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.*" />
いいえ、そうではありません。将来のAPIリリースではこれを期待していますが、今のところはEditTextにこだわっています。別のオプションはこのライブラリです:
https://github.com/marvinlabs/Android-floatinglabel-widgets
この方法を試してください
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:23.0.1'
compile 'com.Android.support:design:23.0.1'
}
詳細については、 こちら をクリックしてください