`

ListView底部分隔线的问题

阅读更多
在工作中遇到了一个难题,就是一个listView在最下面的一个item下面没有分割线,要求是必须得有这条分割线。经过一通研究发现了这个奇怪的现象:

      1. ListActivity有这条底部分割线。
      2.在Activity中只有listview,没有别的控件的话也会有。

      其实ListActivity也是一个Activity,只不过在其中使用了SetContentView(listView)方法设置了一个listView作为其显示的View而已。所以结论就是只要这个activity调用了SetContentView(listView)就会有这条底部分割线。

      那么什么情况下才不会有这条分割线呢?在Activity中如果调用setContentView(View)而ListView只是内嵌入到这个View的话有可能会没有这条分割线。

      分析其原因:通过加断点调试发现在listView中,所有的分割线都是通过画一个很窄的矩形来实现的,但是在画分割线前都会都会判断目前的位置A和listView的长度B,如果A=B了,那么就不会画这条分割线了。但是将Listview嵌入到一个View中,一般会设置为高度为wrap_content,这种情况下,最后那条分割线的位置刚好等于listView的高度,所以系统不会画上这条分割线。那要怎么样才会画上呢?很简单,将ListView的高度设置为fill_partent就可以了。

     当然以上所说的都是item很少的情况下,如果item很多以至于必须显示滚动条的话,那最后一个item下面是肯定不会有分割线了。

转自:http://blog.chinaunix.net/space.php?uid=20771867&do=blog&id=2915442
分享到:
评论
3 楼 zhangzhikaixinya 2012-09-26  
分析的很好,但是如果背景透明,每一个item(除最后一个)都会在下方显示分割线,我要想删除这个分割线,有招吗?
2 楼 ideathink 2012-09-12  
果然是这样
1 楼 sjp524617477 2012-08-01  
原来如此

相关推荐

    android listview滑动到底部加载数据

    此外,通过设置ListView的`setFooterDividersEnabled(false)`可以隐藏底部分隔线,提高性能。 7. **防止重复加载**: 需要防止用户在加载过程中多次触发加载事件。一种常见做法是在加载过程中禁用滚动监听器,或者...

    去掉ListView底部的ListDivider的方法

    以下是一个简单的示例,展示如何在Adapter中避免绘制底部分隔线: ```java @Override public View getView(int position, View convertView, ViewGroup parent) { View itemView = super.getView(position, ...

    安卓listviewdemo

    8. **ListView的分隔线(Divider)**:开发者可以自定义ListView的分隔线样式,通过设置`setDivider()`和`setDividerHeight()`方法。 9. **ListView的动画效果**:为了提升用户体验,可以添加一些动画效果,例如项...

    listview小代码

    默认ListView没有分隔线,可以设置`setDivider()`和`setDividerHeight()`添加分隔线,增加视觉效果。 9. **选择模式** 通过`setChoiceMode()`设置ListView的选中模式,如单选(CHOICE_MODE_SINGLE)、多选...

    Android之listview属性

    - `android:divider="@drawable/list_driver"` 用于设置ListView项之间的分隔线,可以指定一个图片资源。若要移除分隔线,设置为`android:divider="@null"`。 5. **fadingEdge属性**: - `android:fadingEdge=...

    ListView案例

    还可以通过`android:divider`和`android:dividerHeight`属性设置分隔线。 4. 设置Adapter:在Activity或Fragment中,通过ListView的`setAdapter()`方法将ArrayAdapter绑定到ListView上。 5. 事件监听:通过实现`...

    ListView 去除边缘阴影、选中色、拖动背景色等

    在ListView中,每一项之间通常都会有一条分隔线来区分不同的列表项。有时候为了追求更简洁的视觉效果,可能希望去除这些分隔线。 可以通过调用`setDivider(null)`方法来实现这一点。需要注意的是,这是一个运行时的...

    android listview 详解 开发指南

    3. **分隔线**:通过setDivider()方法可以设置列表项之间的分隔线,setDividerHeight()来调整分隔线的高度。 4. **头尾视图**:通过addHeaderView()和addFooterView()方法,可以在ListView的头部和尾部添加固定不变...

    下拉列表ListView的应用实例

    - `android:footerDividersEnabled`和`android:headerDividersEnabled`:控制是否显示底部和顶部的分隔线。 3. **ListView的事件监听** - `.setOnItemClickListener(OnItemClickListener)`:设置点击列表项时触发...

    android-ListView

    3. **分隔线**:通过设置Divider和DividerHeight属性,可以在ListView项之间添加分隔线,提高视觉效果。 4. **选择模式**:ListView支持多种选择模式,如单选(CHOICE_MODE_SINGLE)和多选(CHOICE_MODE_MULTIPLE)...

    安卓listview相关相关-android ListView实现显示微信好友列表.rar

    - 设置合适的item分隔线,提高用户体验。 9. **下拉刷新和上拉加载**: - 若列表数据量大,可以集成SwipeRefreshLayout实现下拉刷新功能,使用LoadMoreView实现上拉加载更多好友。 10. **性能监控**: - 使用...

    普通ListView源码

    分隔线可以通过`setDivider()`和`setDividerHeight()`来设置,用于区分列表项,提供更好的视觉效果。 8. **Smooth Scrolling** ListView支持平滑滚动,通过`smoothScrollBy()`或`smoothScrollToPosition()`方法...

    Android ListView使用技巧

    使用`setDivider()`和`setDividerHeight()`可以自定义列表项之间的分隔线,提升界面美观度。 以上技巧可以帮助你在Android应用开发中更好地利用ListView这一组件,提供流畅且高效的用户体验。在实际项目中,根据...

    Android之ListView代码

    - **布局文件**:在XML布局文件中,我们通过`<ListView>`标签添加ListView,并可以设置其属性,如id、背景色、分隔线等。 - **数据源**:数据源可以是ArrayList、Array等,存储要显示的项目信息。 - **Adapter**...

    ListViewDemo(绝对可以用)

    - `getViewTypeCount()` 和 `getItemViewType(int position)` 方法用于处理不同类型的列表项,例如在列表中插入广告或分隔线。 5. **ListView的事件监听** - `.setOnItemClickListener()` 用于设置点击列表项时的...

    Android中listView的讲解

    7. **ListView的分隔线(Divider)** 使用`setDivider()`和`setDividerHeight()`方法可以设置列表项之间的分隔线样式和高度。 8. **下拉刷新和上拉加载更多** 为了实现类似功能,可以使用SwipeRefreshLayout包裹...

    Android_TabHost+ListView组合使用

    2. **去除顶部间隔**: 如果ListView上方有额外的间隙,可能是因为默认的Header造成的,可以通过设置`listView.setDivider(null)`和`listView.setDividerHeight(0)`去除分隔线和分隔线的高度。 3. **去除底部间隔**:...

    制定ListView界面

    - 分割线(`Divider`):通过 `setDivider()` 和 `setDividerHeight()` 设置列表项之间的分隔线。 - 头部和尾部(Header and Footer):`addHeaderView()` 和 `addFooterView()` 可以添加固定在顶部或底部的视图。...

    RecyclerView 和 ListView 使用对比分析

    ListView支持多种视图类型,例如头部、底部和分隔线,但添加这些需要自定义适配器。然而,ListView在处理大量数据和复杂的动画时性能表现会有所下降,因为它的滚动性能优化有限。 相比之下,RecyclerView自Android ...

    Android软件开发之ListView 详解源码

    - `Divider`和`DividerHeight`定义了列表项之间的分隔线及其高度。 3. **ListView滚动机制**: - `OnScrollListener`监听器可以捕捉到滑动开始、滑动进行和滑动结束的事件,这对于实现下拉刷新和上拉加载等功能至...

Global site tag (gtag.js) - Google Analytics