小编典典

如何在线性布局的一侧绘制边框?

all

我能够为线性布局绘制边框,但它被绘制在所有方面。我只想将其限制在右侧,就像您在 CSS 中所做的那样(border-right:1px solid
red;)。

我已经尝试过了,但它仍然吸引了各方:

<?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:height="2dp"
            android:width="2dp"
            android:color="#FF0000" />

        <solid android:color="#000000" />

        <padding
            android:bottom="0dp"
            android:left="0dp"
            android:right="1dp"
            android:top="0dp" />

        <corners
            android:bottomLeftRadius="0dp"
            android:bottomRightRadius="5dp"
            android:radius="1dp"
            android:topLeftRadius="5dp"
            android:topRightRadius="0dp" />
    </shape>
</item>

关于如何做到这一点的任何建议?

顺便说一句,我不想​​使用将宽度为 1dp 的视图放在所需一侧的技巧。


阅读 111

收藏
2022-06-22

共1个答案

小编典典

您可以使用它来获取一侧的边框

<?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="#FF0000" />
    </shape>
</item>
<item android:left="5dp">
    <shape android:shape="rectangle">
        <solid android:color="#000000" />
    </shape>
</item>
</layer-list>

已编辑

由于包括我在内的许多人都希望有一个带有透明背景的一侧边框,我已经实现了一个BorderDrawable可以像我们使用 css
一样为我提供不同大小和颜色的边框。但这不能通过 xml 使用。为了支持 XML,我添加了一个BorderFrameLayout可以包装您的布局的方法。

请参阅我的github以获取完整的源代码。

2022-06-22