Android 中关于ListView分割线的设置

今天发现许多App上的listview的item之间的分割线都只显示了右边一部分,而左边的那一半则没有,第一反应则是给分割线设置一张背景图片就ok了:

android:divider="@mipmap/line"

然而,后来网上找找资料后发现,可以自己去定义一个drawable,将其设置为listview的分割线(divider)

效果图:


1.drawable下的listview_item_divider:
1 <?xml version="1.0" encoding="utf-8"?>
2 <inset xmlns:android="http://schemas.android.com/apk/res/android"
3     android:insetLeft="100dp"
4     android:insetRight="15dp"
5     android:drawable="@color/line_gray">
6
7 </inset>

2.activity_main里的listview:

1 <ListView
2
3         android:id="@+id/lv_main"
4         android:divider="@drawable/listview_item_divider"
5         android:dividerHeight="1dp"
6         android:layout_width="match_parent"
7         android:layout_height="match_parent">
8 </ListView>

3.item布局:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="wrap_content"
 5     android:orientation="horizontal"
 6     android:padding="3dp">
 7
 8     <ImageView
 9         android:id="@+id/img_item"
10         android:layout_width="100dp"
11         android:layout_height="100dp"
12         android:contentDescription="@null"
13         android:scaleType="fitXY"
14         android:src="@mipmap/octocat" />
15
16     <TextView
17         android:id="@+id/tv_item"
18         android:layout_width="match_parent"
19         android:layout_height="100dp"
20         android:gravity="center"
21         android:text="TITLE"
22         android:textSize="15sp" />
23
24 </LinearLayout>

4.MainActivity(由于比较简单,所以并没有严格规范编码格式)

 1 public class MainActivity extends AppCompatActivity {
 2
 3     private ListView mListView;
 4
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9         mListView = (ListView) findViewById(R.id.lv_main);
10         // 为listview设置数据(没有改变图片,仅仅设置了不同的title)
11         List<Map<String, String>> list = new ArrayList<>();
12         for (int i = 0; i < 20; i++) {
13             Map<String, String> map = new HashMap<>();
14             map.put("title", "Talon" + i);
15             list.add(map);
16         }
17         SimpleAdapter adapter = new SimpleAdapter(this, list,
18                 R.layout.listview_item, new String[]{"title"},
19                 new int[]{R.id.tv_item});
20         mListView.setAdapter(adapter);
21     }
22 }

关于文中不好的地方,欢迎各位批评指正!

时间: 2024-10-27 03:38:09

Android 中关于ListView分割线的设置的相关文章

【转】整理一下Android中的ListView

原文网址:http://sunbofu.blog.51cto.com/6431507/1280441 Android中的listview目测是一个使用频率很高的组件,所以今天来总结一下listview的基础的用法. 一.最基本的绑定 java代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

Android中使用ListView绘制自定义表格(2)

上回再写了<Android中使用ListView绘制自定义表格>后,很多人留言代码不全和没有数据样例.但因为项目原因,没法把源码全部贴上来.近两天,抽空简化了一下,做了一个例子. 效果图如 一.功能: 1.支持列合并 2.考虑了界面刷新优化 3.预留部分接口 4.支持左右滚动 1.枚举类:CellTypeEnum package csdn.danielinbiti.custometableview.item; public enum CellTypeEnum { STRING //字符 ,DI

Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案

如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView 的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为 false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了 我们可以通过对Item Layout的根控件设置其android:descendantFocusability="blo

Android中使用ListView绘制自定义表格(3)

把自定义表格又改进了一下,可以支持行合并.表格分为简单和复杂两种模式 1.简单模式就是<Android中使用ListView绘制自定义表格(2)>描述的方式.不支持行合并 2.复杂模式支持行列合并 1.基于上回上传的代码,改动文件如下 package csdn.danielinbiti.custometableview.item; public class ItemCell { private String cellValue = "";//单元格的值 private in

ArcGIS for Android 中MapView的地图背景设置

转自:http://blog.csdn.net/wozaifeiyang0/article/details/7535704 根据多方面测速,终于解决了一个蛋疼的问题,MapView的背景设置问题. 在做开发过程中,当我们加载的地图是动态服务或者是切片图层时,地图的背景有时候显示的是对网格,真乃奇臭无比,研究半天终于解决了这个问题,终于不用再看到可恶的网格了,我们通过MapView的setMapBackground(int bkColor, int gridColor, float gridSiz

浅谈android中的ListView合集系列之解决ScrollView和ListView嵌套冲突(一)

相信大家都已经可以熟练使用ListView和GridView,大神们估计都在使用RecyclerView了.如果还在使用ListView,你肯定有这样的一个深刻的感受,那就是在做一个APP的时候使用ListView和GridView很频繁,并且经常会遇到一个页面中除了有ListView或GridView可能还有一些其他的内容,但是可能内容很多,你第一时间就会想到让它整体滑动即可,那就是在总的布局外面包裹一个ScrollView.也就是出现了ScrollView中嵌套一个ListView的场景,或

Android中自定义ListView实现上拉加载更多和下拉刷新

ListView是Android中一个功能强大而且很常用的控件,在很多App中都有ListView的下拉刷新数据和上拉加载更多这个功能.这里我就简单记录一下实现过程. 实现这个功能的方法不止一个,GitHub上有一些开源库可以使用,但是本着学习的精神,我做的是使用自定义ListView实现这个功能. 思路:谷歌提供的ListView是不能提供下拉刷新和下拉加载的,所以我们就需要重写ListView.在ListView的头部和尾部加上我们的布局文件(progressbar). 先说上拉加载更多实现

Android中的ListView使用案例(SimpleAdapter实现)

ListView是可以垂直的滚动的显示一组列表的内容,其中的每一个条目可以是一个单独的组件,也可以是由多个组件组成的组合控件. 实现一个ListView控件的步奏: 1.准备ListView所要显示的数据,一般为一维或二维动态数组. 2.构建适配器,由于ListView中的每一个条目可以很简单,也可以很复杂,根据需要可以选择ArrayAdapter.SimpleAdapter.或者BaseAdapter. 3.使用setAdapter为一个ListView控件设置适配器. 4.为ListView

android中控制ListView宽度和高度

============问题描述============ 给listveiw填充item布局都是wrap_content,listview自身也使用wrap_content,可是实际显示效果listview宽度都是全屏,求解决办法 item布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="wrap_content