How to remove border only from one side of the element?

后端 未结 3 1358
暗喜
暗喜 2021-02-01 22:43

I have:


I\'d like to remove this border from the bottom (for example) of the el

3条回答
  •  臣服心动
    2021-02-01 23:16

    As far as I understand it, there isn't an easy way of doing it. but if you use layer-list with an item that has the border and then one that doesn't with an offset from all the sides for which you want a border equal to the border width, you'd achieve that.

    Let me make the xml for you representing the borderless bottom..

    
    
        
        
            
                
            
        
        
        
            
                
             
        
    
    

    As you can see, I'm telling the second item to be inset of the first one by two dp's on all sides except bottom (hence the no-border result on the bottom), there you go:

    enter image description here

    So essentially this isn't a border per-se, it's the shape from below (although you could add a border if you need dashed or dotted or whatever) being covered by a second item with would be the body of the button. All in the same drawable :)

    This can be applied to any border you want to remove, by changing the values that the item is inset, for example, if I change the right in the Body item to bottom, the missing border would the right one since it's the one without the inset

提交回复
热议问题