图层列表:使用填充移动底部的形状线

Man*_*nza 3 android layer-list

我正在为编辑文本定义选择器背景,并且我希望在编辑文本聚焦时有底线。

这就是我想要实现的目标:

在此输入图像描述

到目前为止我有这个:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <stroke
            android:width="1dp"
            android:color="@android:color/black" />
        <corners android:radius="3dp" />
    </shape>
</item>
<item>
    <shape android:shape="line">
        <stroke android:color="@android:color/black" android:width="1dp"/>
    </shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

它显示了这条线正好在中间,我想把它放在底部,还有左右填充。

有没有办法使用图层列表来实现这一点,或者也许有更好的方法?

san*_*mar 5

<?xml version="1.0" encoding="utf-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
       <shape android:shape="rectangle" android:padding="10dp">
  <solid android:color="#ffffff"/>
  <stroke android:width="2dp" android:color="#ffffff" />
  <corners
      android:bottomRightRadius="5dp"
      android:bottomLeftRadius="5dp"
      android:topLeftRadius="5dp"
      android:topRightRadius="5dp"/>
</shape>
    </item>
<item android:top="20dp" android:right="5dp" android:left="5dp" >
        <shape android:shape="line">
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="2dp"
                android:color="#ababb2" />
        </shape>
    </item>
  </layer-list>
Run Code Online (Sandbox Code Playgroud)

  • 这似乎达到了我想要达到的目的。但对我来说,这看起来像是黑魔法:)我可以要求一点解释吗? (2认同)