我的视图有一个边距以及一些填充。我想在视图周围放置一个边框,但自然边界上的不是(,即边距和填充之间的边界),但外部边界保证金所依据的。我怎么能这样做?
请注意,对于已经在SO上的自然边界,这个问题有几个答案,他们在我的情况下不起作用。事实上,我一直在使用这些解决方案半心半意,但设计最终不能并且不应该受到损害。
答案 0 :(得分:0)
至少方法:
答案 1 :(得分:0)
我认为没有好的解决方案,因为边距是LayoutParams的一部分,由父ViewGroup处理,因此视图不知道它们(尽管它可以在其naural边界之外绘制)。我能想象的唯一方法是子类ViewGroup(例如LinearLayout)并从那里计算并绘制边框。
答案 2 :(得分:0)
您可以尝试使用此解决方法: 使用此xml代码作为视图的drawable,您打算在边距上显示边框
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="-margin_top"
android:bottom="-margin_bottom"
android:left="-margin_left"
android:right="-margin_right">
<shape
android:shape="rectangle">
<stroke android:width="req + margin" android:color="#43000000" />
</shape>
</item>
</layer-list>
我希望这能解决您的问题