web-dev-qa-db-ja.com

android)でTextInputLayoutのフローティングラベルの位置を変更する方法

TextInputLayout内に長方形の編集テキストがあります。フローティングラベルと編集テキストの長方形の境界の間にマージンを入れたいのですが、それができません。さまざまなマージンパラメータを試しましたが、うまくいきませんでした。 here is the screen shot of the Edit text

この画像では、フローティングラベルが長方形の編集テキストの上限に固定されていることがわかります。しかし、ラベルと上限の間にいくらかのスペースが必要です。よろしくお願いします。

以下はEditTextのXMLコードです

 <Android.support.design.widget.TextInputLayout
            Android:id="@+id/input_layout_password"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"

           >

            <EditText
                Android:id="@+id/input_password"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:hint="email"

                Android:background="@drawable/textbg"/>

以下は背景ドローアブルのコードです

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"

    Android:shape="rectangle">
    <stroke Android:width="1dp"
        Android:color="@color/colorPrimary"/>
    />

    <padding
        Android:left="15dp"
        Android:right="15dp"
        Android:top="15dp"
        Android:bottom="15dp" />
</shape>
13
Baqir

ラベルの位置TextInputLayoutをカスタマイズすることはできないと思います。また、TranslationYを使用すると、ビューが変換されるため、フローティングラベルの位置を変更するのに適したソリューションではありません。他に答えがあれば教えてください。

3
Sunita

TextInputLayoutに手動で高さを指定できます。

Android:layout_height="100dp"

それは私のために働きます。

3
kirti

上からパディングを取得するには、レイヤーリストで描画可能な背景を使用します。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:top="10dp">
        <shape Android:shape="rectangle">
            <!-- view background color -->
            <solid Android:color="@Android:color/transparent"></solid>

            <stroke
                Android:width="1dp"
                Android:color="@color/colorAccent" />

            <!-- If you want to add some padding -->
            <padding
                Android:bottom="10dp"
                Android:left="10dp"
                Android:right="10dp"
                Android:top="10dp"></padding>
        </shape>
    </item>
</layer-list>

使用法

<Android.support.design.widget.TextInputLayout
  Android:layout_width="match_parent"
  Android:layout_height="wrap_content"
  Android:hint="@string/label_quantity"
  Android:textColorHint="@color/colorOrange"
  app:errorEnabled="true"
  app:errorTextAppearance="@style/ErrorText">

  <Android.support.design.widget.TextInputEditText
    Android:layout_width="match_parent"
    Android:layout_height="@dimen/login_edit_text_height"
    Android:background="@drawable/drawable_background"
    Android:imeOptions="actionNext"
    Android:inputType="number"
    Android:maxLines="1"/> 

</Android.support.design.widget.TextInputLayout>
2
Anoop M

EditTextにカスタム背景を設定している場合、Android:paddingTop属性simpleは、フローティングヒントテキストと編集テキストの間隔を変更するために機能しません。したがって、EditTextにカスタム背景を設定している場合は、EditTextでAndroid:translationY属性を使用できます。

 <Android.support.design.widget.TextInputLayout
            Android:id="@+id/input_layout_password"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content">

            <EditText
                Android:id="@+id/input_password"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:hint="email"
                Android:translationY="10dp" 
                Android:background="@drawable/textbg"/>

</Android.support.design.widget.TextInputLayout>

お役に立てれば :)

0
Alok Nair

EditTextカスタム背景に追加するだけです

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
        <shape Android:shape="rectangle">
            <padding
                Android:top="4dp"/> // your padding value
        </shape>
    </item>
// customize your background items if you need
</layer-list>





<Android.support.design.widget.TextInputLayout
 ...>

    <Android.support.design.widget.TextInputEditText
        ...
        Android:background="@style/your_custom_background"/>

次に、それをEditTextに適用し、fix heightを使用する場合は、パディング値を使用してEditTextの高さを増やします。

0
Alex Naumchick

(テスト済みコード100%動作中) TextInputLayoutの高さはEditTextより大きくする必要があります。次に、GRAVITYを設定します。

 <Android.support.design.widget.TextInputLayout
                Android:layout_width="match_parent"
                Android:layout_height="65dp"
                Android:gravity="bottom">

                   <EditText
                    Android:id="@+id/etName"
                    Android:layout_width="match_parent"
                    Android:layout_height="40dp"/>

 <Android.support.design.widget.TextInputLayout/>
0
Satendra Behre

そのためには、次のようにedittextからtextinputlayoutに背景を配置する必要があります

<Android.support.design.widget.TextInputLayout
        Android:id="@+id/input_layout_password"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:background="@drawable/textbg"
       >

        <EditText
            Android:id="@+id/input_password"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:hint="email"/>

ドローアブルファイルでパディングトップを指定するだけです。

0
Parth Munjpara