在ListView中的每一行周围放置一个边框

时间:2015-02-11 05:28:55

标签: android android-listview

我已经在这里搜索过很多并且已经实现了常见的解决方案。我想要的是这样的(listview行项目周围的红色边框):

enter image description here

我得到的是这个(只有顶部的红色边框可见):

enter image description here

以下是实施:

ListView.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"   android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="@color/gray"
 android:paddingTop="1dp" >

 <android.support.v4.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingRight="17dp"
    android:paddingTop="5dp"
    android:paddingLeft="17dp">

  <ListView
    android:id="@+id/lv_feeds"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="@android:color/transparent"
    android:dividerHeight="5.0sp"
    android:scrollbars="none">
  </ListView>
  </RelativeLayout>
 </android.support.v4.widget.SwipeRefreshLayout>
</FrameLayout>

row_listview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/border">

.....
</LinearLayout>

border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">

 <solid android:color="@color/white" />
 <stroke android:width="12dp" android:color="@color/app_red"/>

</shape>

2 个答案:

答案 0 :(得分:6)

向线性布局左右填充一些填充:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/border"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp">
    .....
  </LinearLayout>

答案 1 :(得分:-1)

完成代码后我得到的是 -

  1. 在linearlayout(row_listview.xml)中添加12dp的填充以使边框可见。