how to add bottom border in relativelayout

前端 未结 4 1806
没有蜡笔的小新
没有蜡笔的小新 2021-02-04 06:04


        
相关标签:
4条回答
  • 2021-02-04 06:16

    For some reason the other solutions didn't work for me - all borders were shown no matter how I changed it. This worked:

    <?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:width="1dp" android:color="@color/gray" />
                <solid android:color="@color/gray" />
            </shape>
        </item>
    
        <item android:bottom="1dp">
            <shape
                android:shape="rectangle">
                <stroke android:width="1dp" android:color="@color/white" />
                <solid android:color="@color/white" />
    
            </shape>
        </item>
    </layer-list>
    

    The color of the border is gray and the background is white for the container (LinearLayout in my example). You can simply change the second item to make the border thicker or have border on the top/left/right.

    This is how the layout xml looks like:

    <LinearLayout
            android:id="@+id/searchWrapper"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:background="@drawable/bottom_gray_border"
            android:layout_alignParentTop="true">
    
            <EditText
                android:id="@+id/searchEditText"
                style="@style/EditTextSearch"
                android:hint="@string/find"
                android:layout_marginLeft="5dp"/>
    
    </LinearLayout> 
    

    I got the idea from here: Is there an easy way to add a border to the top and bottom of an Android View?

    0 讨论(0)
  • 2021-02-04 06:19

    I hope I understood what you said.

    in the res folder create a new folder (if you don't already have it) named drawable

    there create an xml named "borders.xml"

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_pressed="true"><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
            <gradient android:angle="90" android:centerColor="#6da23f" android:endColor="#8bc45d" android:startColor="#2f481c" />
    
                <stroke android:width="2dp" android:color="#999999" />
    
                <padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" />
    
                <corners android:radius="10px"/>
            </shape>
        </item>
        <item>
            <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
                <gradient android:angle="90" android:centerColor="#6da23f" android:endColor="#8bc45d" android:startColor="#4c8a39" />
    
                <stroke android:width="1dp" android:color="#FFFFFF" />
    
                <padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" />
    
                <corners android:radius="10px"/>
            </shape>
        </item>
    </selector>
    

    You can further edit it as you like. Then select the layout from the Outline and click Background properties, and select the borders xml that you created.

    This will create borders for all 4. Alternatively, you can add a simple

    <View android:layout_width="1dip"
        android:layout_height="fill_parent"
        android:background="#FFFFFF" />
    

    line and add it to the bottom of your layout and change the color/size to your liking.

    0 讨论(0)
  • 2021-02-04 06:23
    <?xml version="1.0" encoding="UTF-8"?>
    
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <stroke
            android:width="1dip"
            android:color="#FF8000" />
    
        <solid 
            android:color="#00FFFFFF"
            android:paddingLeft="10dip"
            android:paddingTop="10dip"/>
    
        <corners android:radius="10px"/>
    
        <padding 
            android:left="10dip" 
            android:top="10dip" 
            android:right="10dip" 
            android:bottom="10dip" /> 
    </shape>
    

    You can save this as borderframe.xml in the res/drawable folder (create it if it doesnt exist yet), and reference it like so: android:background="@drawable/borderframe".

    0 讨论(0)
  • 2021-02-04 06:26

    A simple way to display a border is to create a horizontal LinearLayout, and to set its background color and height according to the border you want.

    0 讨论(0)
提交回复
热议问题