如何在此图层列表可绘制内容中添加底线?

时间:2019-04-30 17:17:20

标签: android android-layout android-view android-drawable layer-list

我想在视图中显示底线。下面的drawable以某种方式添加了底部边框:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape
                android:shape="rectangle">
            <!-- Set the border color of your layout here -->
            <solid android:color="@color/red" />

        </shape>
    </item>

    <!-- This is for border bottom but
    you can change this according to your need -->
    <item android:bottom="2dp" >
        <shape
                android:shape="rectangle">
            <!-- Set the background color of your layout here -->
            <solid android:color="@color/green" />
        </shape>
    </item>

</layer-list>  

其结果是:

enter image description here

问题
1)我完全不知道这是如何工作的。看来这是使用边距获得红色底边框的技巧,但我不是很了解。
2)我需要能够添加底部边框,但是我不想为整个视图设置任何特定的背景颜色。有可能吗?

2 个答案:

答案 0 :(得分:0)

这是在告诉系统从何处开始此项目布局。 由于这里有底部2dp,因此此布局从底部开始2dp。 将底部更改为结束,开始或其他选项以获取更多了解。

答案 1 :(得分:0)

对于 2)我需要能够添加底部边框,但是我不想为整个视图设置任何特定的背景颜色。有可能吗?

用以下代码替换您的可绘制对象:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:left="-2dp"
    android:right="-2dp"
    android:top="-2dp">
    <shape android:shape="rectangle">
        <solid android:color="#ffffff" />
        <!--Uncomment this if you wnat to set any background color to 
    your rectangle
<solid android:color="#ffffff" />-->

        <stroke
            android:width="1dp"
            android:color="@color/red" />
    </shape>
</item>