首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

动态更改listview的分隔高度?

动态更改listview的分隔高度是指在使用ListView控件时,根据需要动态地更改列表项之间的分隔线高度。在Android开发中,可以通过设置自定义的分隔线Drawable来实现这一目标。

以下是一个简单的示例,展示了如何在ListView中动态更改分隔高度:

  1. 创建一个自定义Drawable作为分隔线:
代码语言:java
复制
public class CustomDivider extends Drawable {
    private int mDividerHeight;
    private Paint mPaint;

    public CustomDivider(int dividerHeight, int dividerColor) {
        mDividerHeight = dividerHeight;
        mPaint = new Paint();
        mPaint.setColor(dividerColor);
        mPaint.setStrokeWidth(mDividerHeight);
    }

    @Override
    public void draw(Canvas canvas) {
        Rect bounds = getBounds();
        int left = bounds.left;
        int right = bounds.right;
        int top = bounds.top;
        int bottom = bounds.bottom;

        canvas.drawLine(left, top, right, bottom, mPaint);
    }

    @Override
    public void setAlpha(int alpha) {
        mPaint.setAlpha(alpha);
    }

    @Override
    public void setColorFilter(ColorFilter colorFilter) {
        mPaint.setColorFilter(colorFilter);
    }

    @Override
    public int getOpacity() {
        return PixelFormat.TRANSPARENT;
    }
}
  1. 在ListView的Adapter中设置自定义分隔线:
代码语言:java
复制
public class MyAdapter extends BaseAdapter {
    // ...

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // ...

        // 根据需要动态设置分隔线高度
        int dividerHeight = getDividerHeight(position);
        CustomDivider customDivider = new CustomDivider(dividerHeight, Color.BLACK);
        view.setDivider(customDivider);

        return view;
    }

    private int getDividerHeight(int position) {
        // 根据position返回需要的分隔线高度
        // 可以根据需要自定义逻辑
        return position % 2 == 0 ? 10 : 20;
    }
}

通过以上方法,可以实现在ListView中动态更改分隔高度的目标。需要注意的是,这个示例仅适用于Android开发,如果您使用的是其他平台或技术,请根据实际情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android scrollview嵌套listview计算高度问题

在LinearLayout中放需要呈现内容。ListView也在其中,ListView高度设为适应自身内容(wrap_content)。...但是为啥在scrollview中嵌套listview会出现只显示第一条listitem高度呢,原因是:scrollviewontach方法滚动事件消费处理,ListView控件高度设定问题 从谷歌那里找到...        // listView.getDividerHeight()获取子项间分隔符占用高度              // params.height最后得到整个ListView完整显示需要高度...              listView.setLayoutParams(params);          }      这个代码让控件去计算Listview自己高度然后设置这个Listview...高度 但是这个代码里面有一个问题,就是这个当你ListView里面有多行TextView的话,ListView高度就会计算错误,它只算到了一行TextView高度, 这个问题在so上概述为以下

2.3K60
  • 动态 iframe 内容高度自适应

    使用iframe加载其他页面的时候,需要自适应iframe高度 这里加载了两个不同内容高度页面至iframe中 1....在onload事件触发时,根据body高度自适应iframe高度 <iframe name="iframe1...this.contentWindow 其实就类似与下方<em>的</em> name值对应<em>的</em>iframe2,两种引用方式是等价<em>的</em> ?...可以发现,<em>高度</em>虽然能自适应,不过只支持<em>高度</em>了“从小到大”<em>的</em>自适应 如iframe2<em>的</em>内容比iframe1<em>的</em>高,后者<em>动态</em>加载出前者能自适应,但前者<em>动态</em>加载出后者就不行了,这种<em>高度</em>减小不了 最后<em>的</em>解决办法是...在onload事件中<em>动态</em>设置<em>高度</em>为body<em>高度</em>之前,先将原<em>高度</em>还原为auto或空值 可以用setTimeout(fn,0)将<em>高度</em>设置放到下一轮事件循环中执行,或者在 onbeforeunload 事件中先把<em>高度</em>设置为

    6.8K51

    Android动态修改ListView中指定Item组件属性

    Android动态修改ListView中指定Item组件属性 在Android实际开发过程中经常会遇到,修改ListView中某一项值。如何达到这一目的呢?...方法主要有两种: 第一种方式:当ListView中某一项值发生变化之后,重新加载数据已达到更新ListView目的。 虽然第一种方式能够解决问题,但不值得推荐。因为这样会带来不必要资源消耗。...ListView中某一项值发生改变,实际上是ListView数据源发生了改变。既然数据源发生了改变那么我们就修改数据源。...下面就拿修改ListView中某一项文件名来演示具体步骤: 步骤一:获取单击ListView中tem位置 //注册单击ListViewItem响应事件 list.setOnItemClickListener...中tem位置 } }); 步骤二:根据单击ListView中tem位置更新ListView数据源,并通知适配器数据改变 String newFileName=edtFileName.getText

    3.8K80

    利用Flutter中ListView进行动态卡片布局

    本文主要介绍 listView下进行动态卡片布局 真香!本来觉得用以前java就能做为啥还用flutter,但是最近接触flutter之后感觉这才是写移动应用神器啊!...尤其是用java写listView,各种适配器传参简直了 效果 可以显示gif动图哦,真强大,某些模拟器中可能有闪烁现象,但是我手机上没有,可能是兼容问题 ) 原理 在完成这个效果之前, 分两步走...,listview列表和card布局 listView 没有适配器,没有viewHolder,没有entity,flutter将他变成了一个纯前端项目,简单到任何注释都是那么苍白 return...subtitle: Text('工程师'), ) ], ), ), ​ ] ); // ​ 合并 难点在于,不能像一开始listView...) 将listData通过map形式传入成为value,然后取相应key值传入对应参数,listView会自动循环遍历value中内容 import 'package:flutter/material.dart

    2K20

    Android开发中Listview动态加载数据方法示例

    本文实例讲述了Android开发中Listview动态加载数据方法。...分享给大家供大家参考,具体如下: 最近在研究网络数据加载问题,比如我有几百,甚至上千条数据,这些数据如果一次性全部加载到arraylist,然后再加载到Listview中。...我想法是动态加载数据,第一次加载十条,然后往下面滑动时候再追加十条,再往下面滑动时候再去追加,这样大大减少了用户等待时间,同时给处理数据留下了时间。...,即对齐方式是 layout.setGravity(Gravity.CENTER); // 设置ListView页脚layout loadingLayout = new LinearLayout(this...(loadingLayout); } // 重新刷新Listviewadapter里面数据 adapter.notifyDataSetChanged(); break; default: break;

    1.8K10

    Android隐藏Listview和RecyclerView 滑动边界阴影,去除滚动条加分隔线等

    1、Listview属性设置,虽然我现在经常用RecyclerView,很少用Listview了,但是还是顺便写一下,以便巩固一下知识,万一以后需要呢。...android:overScrollMode="never" 当然设置上面的话也行,下面来看看整体 //以下是整体设置(overScrollHeader和overScrollFooter可不写,此处写了是引用透明色...) <ListView android:id="@+id/lv_listview" android:layout_width="match_parent" android:layout_height...,分隔线高度必须大于0 android:headerDividersEnabled="true" headview下是否加分隔线 android:footerDividersEnabled="true..." footview是否加分隔线 android:scrollbars="none" 设置滚动条不显示,当然ScroollView 也同样有用 2、RecyclerView属性设置 和ListView

    1K30

    Android ListView中headerview动态显示和隐藏实现方法

    Android ListView中headerview动态显示和隐藏实现方法 1.动态设置headerview方法 动态设置headerview有两个思路。...方法一 将header布局写在list item布局文件中,在adapter中通过判断position值是否为0动态控制其显示或隐藏。 代码示例: item.xml布局文件 <?...提供addHeaderView 为了动态显示和隐藏header,按照惯例,误以为直接通过setVisibility中View.GONE就可以实现。...mListView.addHeaderView(mHeader); 如果想动态隐藏这个header,惯性思维是直接设置header为gone:(其实这样做是不对) mHeader.setVisibility...ListView listView = xxxx; listView.addHeaderView(mHeaderParent); listView.setAdapter(adapter);

    1.9K41

    动态生成DOM元素高度及行数获取与计算方法

    背景 在开发IM项目过程中,经常会有出现一些需要计算DOM高度,然后超出若干行隐藏等需求。很多时候,需要计算高度DOM元素都是动态生成,我们无法在数据渲染前获取到它高度。...但是,如果我们需要获取到这段在内存中未渲染动态文本,也能够通过如下几个方法。...技术方案 根据前端基本常识,在内存中未渲染DOM元素是无法获取到高度,因此我们有两个方向来解决这个难题: 通过字数对行数进行估算 将元素渲染后进行高度测算 实现方案 以下实现方案将根据上面所选择技术方案来进行实现...因为在实际页面中进行计算能够保证页面高度计算没有任何误差,因此我们需要一个实际场景,让浏览器来帮助我们进行高度计算。...总结 获取动态元素高度一直都是IM项目中一个重要需求,自己在这个方面也踩了许多坑,因此写了这一篇博客来进行记录,同时其他人如果看到了也可以避免一些常见问题。

    3.9K30

    动态更改 Spring 定时任务 Cron 表达式优雅方案!

    到定时任务真正启动之前,我们都有机会更改任务执行周期等参数。...这是 Spring 提供给我们可变部分。 但是我们往往要得更多。能否在定时任务已经在执行过情况下,去动态更改Cron表达式,甚至禁用某个定时任务呢?...: 定时调度任务动态加载开始>>>>>> 定时任务[CronTaskBar]任务表达式未发生变化,无需刷新 定时任务[CronTaskFoo]已加载,当前任务表达式为[0/6 * * * * ?]...定时任务[CronTaskUnavailable]任务表达式配置为禁用,将被不会被调度执行 定时调度任务动态加载结束<<<<<< Say Bar Say Bar Say Foo Say Bar Say...Unavailable Say Bar Say Unavailable Say Bar 小结 我们在上文通过定时刷新和重建任务方式来实现了动态更改Cron表达式需求,能够满足大部分项目场景,而且没有引入

    76910

    实现动态高度不同样式展现

    ,应用该规则下样式 具体规则为,如果容器高度小于等于 260px 时,.g-content 元素伪元素将变得透明 这样,我们就非常简单实现了容器在不同高度下,ICON 元素显示隐藏切换: 完整代码...方法二:clamp + calc 大显神威 上面效果核心在于: 如果容器高度大于某个值,显示样式 A 如果容器高度小于等于某个值,显示样式 B 那么想想看,如果拿容器高度减去一个固定高度值,会发生什么...bottom 属性中,100% 表示是容器当前高度,因此 calc(100% - 200px) 含义就代表,容器当前高度减去一个固定高度 200px。...因此: 当容器高度大于 200px,calc(100% - 200px) 表示是一个正值 当容器高度小于 200px,calc(100% - 200px) 表示是一个负值 当容器高度等于 200px...有什么办法让它在出现后,一直定位在容器最下方吗? 别忘了,CSS 中,还有几个非常有意思数学函数:min()、max()、clamp(),它们可以有效限定动态值在某个范围之内!

    39050

    分享个刚写好 android ListView 动态加载类,功能全而代码少。

    (转载声明出处:https://cloud.tencent.com/developer/user/1148436/activities) 简介:       该ListView 实现动态加载数据,为了方便用户充分地自定义自己数据源...1,所有关键操作使用接口,由用户自己定义,               包括:数据适配器配置、动态加载函数配置、item点击接口;       2,已经新建线程来执行动态函数。      ...//3,提供一个默认动态执行函数; 用法:       你只需要在自己 activity、fragment或者其他,之后调用其构造函数new 一个该类对象,同时传入你 ListView,然后再继承它两个接口...实现动态加载数据 22 * 1,所有关键操作使用接口,由用户自己定义, 23 * 包括:数据适配器配置、动态加载函数配置、item点击接口; 24 *...25 * //3,提供一个默认动态执行函数; 26 */ 27 public class mainListview implements AbsListView.OnScrollListener

    62070

    Android UI控件之ListView实现圆角效果

    今天在Android群里面有人再求圆角ListView实现方式,正好自己以前实现过。因此就共享了现在将其实现方式写在博客中共他人学习。...给出实现方式之前顺带加点自己想法,感觉上android中方形ListView还是太“硬性”,没有圆角有亲和力。连Apple也为了“圆角”这个设计去申请专利。...listData3, R.layout.list_item, new String[] { "text" }, new int[] { R.id.tv_list_item }); } /*** * 动态设置...listview高度 * * @param listView */ public void setListViewHeightBasedOnChildren(ListView listView...()获取子项间分隔符占用高度 // params.height最后得到整个ListView完整显示需要高度 listView.setLayoutParams(params); } @Override

    67200
    领券