编辑不将背景视为透明的文本

时间:2015-09-23 07:37:17

标签: java android

我将以下内容设置为编辑文本为bg:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="#A4A4A4" />
        </shape>
    </item>

    <!-- main color -->
    <item
        android:bottom="1dp"
        android:left="0dp"
        android:right="0dp">
        <shape>
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
</layer-list>

我的编辑文字嵌套在android.support.design.widget.TextInputLayout中,如:

<android.support.design.widget.TextInputLayout
        android:id="@+id/wrapper_email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp">
  <EditText
          android:id="@+id/email"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_alignParentLeft="true"
          android:layout_alignParentStart="true"
          android:background="@drawable/bg_edit_txt"
          android:hint="@string/reg_email"
          android:imeOptions="actionNext"
          android:inputType="textEmailAddress"
          android:paddingBottom="10dp"
          android:paddingEnd="10dp"
          android:paddingLeft="10dp"
          android:paddingRight="10dp"
          android:textCursorDrawable="@drawable/edit_text_cursor"/>
</android.support.design.widget.TextInputLayout>

呈现如下:

enter image description here

所需的行为是仅在底部渲染一条线,该线覆盖此元素的整个宽度。

enter image description here

1 个答案:

答案 0 :(得分:5)

没关系,我想通了:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="#AAAA" />
        </shape>
    </item>

</layer-list>

根据Norton评论的内容,我提出了以下建议:

<style name="edit_box">
        <item name="android:textColor">@color/white</item>
        <item name="android:inputType">text</item>
        <item name="android:textStyle">bold|italic</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColorHint">#AAA</item>
        <item name="android:paddingBottom">10dp</item>
        <item name="android:paddingLeft">10dp</item>
        <item name="android:paddingRight">10dp</item>
        <item name="android:textCursorDrawable">@drawable/edit_text_cursor</item>
        <item name="android:background">@drawable/bg_edit_txt</item>
    </style>

它就像一个魅力,我喜欢在一个地方定义它并在任何地方使用它的想法。