2016-10-27 18 views
1

いくつかの入力フィールドを実装するためにTextInputLayouts内に配置されたEditTextを使用しています。私の問題は、EditTextsの一番下に余分なスペースがあるように見えることです。これは、複数の入力フィールドをお互いに配置すると明らかです。Android:EditTextの下部に余分なスペースを取り除く

ここには、表示される入力フィールドの間のギャップ(赤で囲まれた部分)が表示されます。

enter image description here

私は、この余分なスペースを取り除きたいです。パディングとマージンを0に設定しても効果はありませんでしたが、負のマージンを適用してみることはできますが、UIテストで問題が発生したため、このソリューションは避けてください。余分なスペースを排除する方法は誰にも分かりますか?

いくつかのコード:のEditTextとTextInputLayoutため

のスタイリング(デフォルトのマージンのディメンション値がすべて0dpあることに注意してください):のEditTextのため

<style name="EditTextLayout"> 
    <item name="android:layout_height">@dimen/input_field_height</item> 
    <item name="android:minHeight">@dimen/input_field_height</item> 
    <item name="android:background">@drawable/input_field_background</item> 
    <item name="android:paddingBottom">@dimen/default_margin_bottom</item> 
    <item name="android:paddingStart">@dimen/default_margin_left</item> 
    <item name="android:paddingEnd">@dimen/default_margin_right</item> 
    <item name="android:paddingTop">@dimen/default_padding_top</item> 
    <item name="android:layout_marginBottom">@dimen/default_margin_bottom</item> 
    <item name="android:textColorHint">@color/input_field_floating_label</item> 
</style> 

<style name="EditTextTheme"> 
    <item name="android:imeOptions">actionDone</item> 
    <item name="android:maxLines">1</item> 
    <item name="colorControlNormal">@color/primary_line_color</item> 
    <item name="colorControlActivated">@color/nordea_blue</item> 
    <item name="colorControlHighlight">@color/error_color</item> 
    <item name="android:textColorPrimary">@color/input_field_text</item> 
    <item name="android:textSize">@dimen/textsize_caption</item> 
    <item name="android:textColorHint">@color/input_field_floating_label</item> 
</style> 

<style name="EditText"> 
    <item name="android:theme">@style/EditTextTheme</item> 
    <item name="android:textCursorDrawable">@drawable/cursor_blue</item> 
    <item name="android:paddingStart">@dimen/default_padding</item> 
    <item name="android:paddingEnd">@dimen/default_padding</item> 
    <item name="android:paddingTop">@dimen/input_field_floating_label_padding</item> 
    <item name="android:layout_marginBottom">@dimen/default_margin_bottom</item> 
    <item name="android:background">@drawable/input_field_divider</item> 
</style> 

背景(唯一のボトムラインを作るために作られました厚い):TextInputLayoutため

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@android:color/transparent"/> 
     </shape> 
    </item> 
    <item 
     android:left="@dimen/input_field_background_side_margin" 
     android:right="@dimen/input_field_background_side_margin" 
     android:top="@dimen/input_field_background_side_margin"> 
     <shape> 
      <solid android:color="@android:color/transparent"/> 
      <stroke 
       android:width="@dimen/input_field_divider_height" 
       android:color="@color/input_field_divider_color"></stroke> 
      <padding 
       android:bottom="@dimen/testlogin_dropdown_divider_padding" 
       android:top="@dimen/input_field_floating_label_padding"/> 
     </shape> 
    </item> 
</layer-list> 

背景:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:bottom="@dimen/inputfield_background_light_margin_bottom"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/input_field_layout_bg"/> 
      <padding 
       android:bottom="0dp" 
       android:left="0dp" 
       android:right="0dp" /> 
     </shape> 
    </item> 
</layer-list> 

使用法:

<android.support.design.widget.TextInputLayout 
    android:id="@+id/input_container" 
    style="@style/EditTextLayout" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/input_field_height" 
    app:errorTextAppearance="@style/EditTextErrorText" 
    app:hintTextAppearance="@style/EditTextFloatingLabel" 
    tools:hint="Hint text" 
    tools:text="Label text"> 

    <android.support.design.widget.TextInputEditText 
     android:id="@+id/input_editfield" 
     style="@style/EditText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:imeOptions="actionDone" 
     android:inputType="text|textCapSentences"/> 

</android.support.design.widget.TextInputLayout> 
+0

ごとに値を使用し、2回目の自分のエディットテキストのために、この

android:layout_marginTop="-10dp" 

を試してみてください、あなたは完全にremovig 'padding'と' marginBottom'を試してみました? また、たくさんの0dp 'paddings'の中のポイントは何ですか? – NightSkyLove

+0

私はtestlogin_dropdown_divider_paddingとinput_field_floating_label_paddingの値をテストケースとして変更しようとしているのですか? – Raghavendra

+0

@Prad、私はこれらすべてを試して、パディングと余白を取り除き、値を変更しました。しかし、私が何をしても、その底に余分なスペースが常にあります。パディングと余白を0に設定しようとしても、それが表示されます。私は誰もがその空間がどこから来ているのか、それを取り除くために何ができるのか分かっているのだろうかと思っています。前に述べたように、マイナスのマージンは私にとっては良い解決策ではないので、私は代替案を探しています。 – hildegard

答えて

関連する問題