android边框能只定义左边框吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android边框能只定义左边框吗相关的知识,希望对你有一定的参考价值。

android虽然提供了四个属性, 但是目前这四个无论设置哪个都是影响到四个的。 如果确实有必要的话,那可以通过以下变态手法达到。 在上面放一个独立的控件,然后另外一个矩形放在那个控件的上层。 这里应该要用到层布局。
给view设置边框的代码:
1.创建xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

2.设置<!-- 圆角 -->
<corners
android:radius="9dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:bottomRightRadius="2dp"/><!-- 设置圆角半径 -->

3.设置<!-- 渐变 -->
<gradient
android:startColor="@android:color/white"
android:centerColor="@android:color/black"
android:endColor="@android:color/black"
android:useLevel="true"
android:angle="45"
android:type="radial"
android:centerX="0"
android:centerY="0"
android:gradientRadius="90"/>

4.设置<!-- 间隔 -->
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp"/><!-- 各方向的间隔 -->

5.设置大小精细<!-- 大小 -->
<size
android:width="50dp"
android:height="50dp"/><!-- 宽度和高度 -->

6.设置<!-- 填充 -->
<solid
android:color="@android:color/white"/><!-- 填充的颜色 -->

7.设置边框<!-- 描边 -->
<stroke
android:width="2dp"
android:color="@android:color/black"
android:dashWidth="1dp"
android:dashGap="2dp"/>
</shape>
参考技术A android虽然提供了四个属性, 但是目前这四个无论设置哪个都是影响到四个的。 如果确实有必要的话,那可以通过以下变态手法达到。 在上面放一个独立的控件,然后另外一个矩形放在那个控件的上层。 这里应该要用到层布局。本回答被提问者采纳 参考技术B android边框是通过drawable来配置的

1
2
3
4
5
6
7

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#FFFFFF" /> //背景色
<stroke
android:width="1dp" //边框线粗细
android:color="#000000" /> //边框线颜色
</shape>
参考技术C border: 1px solid #ffffff;这个是定义一个边框,它本身不存在内外边框之分,是有内外边距;padding: 1px;设定内容到内边距的距离为一个像素,相反的margin:1px;设定的是外边距;如果想让这个方框外面加一个框,那就重新加一个div;

SwiftUI间隙左边距并更改列表项底部边框的颜色

【中文标题】SwiftUI间隙左边距并更改列表项底部边框的颜色【英文标题】:SwiftUI gap left margin and change color of List item's bottom border 【发布时间】:2020-10-11 21:55:44 【问题描述】:

我是 SwiftUI 的新手,正在尝试创建一个 UI 组件,例如 UITableView。我正在使用 List,有几件事我想自定义。

    左边有一个边距。我设法将项目内部组件的边距拉开,而不是底部边框。 我想更改列表项底部边框的颜色。

我的代码如下所示:

List 
   ForEach(someArray)  _ in
   Text("Item")
       .listRowInsets(EdgeInsets()) // To gap the left margin
    

为了具体说明列表项的底部边框,我将附上这张图片。

我的意思是红色箭头指向的线是列表项的底部边框。不仅是最后一个边框,还有每个项目的边框。

如果有任何见解,我将不胜感激。谢谢!

【问题讨论】:

【参考方案1】:

SwiftUI 仍然缺少一些 UIKit 已知的功能。这肯定会随着时间的推移而改变,但现在我会推荐一种稍微不同的方法。您可以通过将ScrollViewLazyVStack (iOS14) 结合使用来实现所需的结果

ScrollView 
     LazyVStack(alignment: .leading) 
         ForEach(someArray, id: \.self)  _ in
             Text("Item")
                 .padding(.leading)
             Divider()
                 .background(Color.red)
         
     
 

【讨论】:

感谢您的回复。我想到了scrollview和vstack的组合。我想试试 List,但现在我会听取你的建议。

以上是关于android边框能只定义左边框吗的主要内容,如果未能解决你的问题,请参考以下文章

Android 给图片加边框

Android layer-list stroke 单边边框 指定边边框

Android 简单自定义TextView

Android 通过solid来定义不同边框的颜色,可以只定义一个边框的颜色

android 用XML定义边框,

Android自定义边框加阴影