Android 使用addview生成列表,界面切换时将指定的行数滚动到列表的第一行
来源:互联网 发布:天猫和淘宝价格对比 编辑:程序博客网 时间:2024/04/30 10:44
项目中有界面是利用scrollview,来实现左侧固定,下方和右侧同时滚动的功能,这里只能使用addview一个个将textview放到linearLayout里面,但之后又有一个需求是,切面切换时,需要将所制定的某一行置顶,解决方式如下:
1.将所需要置顶的那行,取一个textview出来,存放到map中,如下代码:
String intstument = fixedLeftList.get(rank).get(open_LeftData[0]).toString();if (jumpInstrument.containsKey(intstument)) {} else {jumpInstrument.put(intstument, textView);}
String instrumentSumm = DocCaptain.getInstance().getSummaryInstrument();int parentHeight = open_main_scroll.getMeasuredHeight();int bottomHeight = jumpInstrument.get(instrumentSumm).getTop();int insHeight = jumpInstrument.get(instrumentSumm).getHeight();int offset = (bottomHeight - parentHeight) + (parentHeight - insHeight) + insHeight;System.out.println("該商品距離父佈局的高度為" + jumpInstrument.get(instrumentSumm).getTop() + "移動的距離為" + offset);open_main_scroll.smoothScrollTo(0, offset);
注:计算往上移动的高度,是通过计算:scrollview的整体高度,每行占据的高度,该textview距离父scrollview的高度,进行一些简单的运算即可.
//========================分割线,2016年5月26日15:07:13=====================================
遇到的问题是有时候scrollto无法执行,有时候有些界面数据少就会执行,所以使用handler进行延迟处理,就好了,如下代码:
if (JumpFragmentCaptain.getInstance().isOrderJump()) {handler.postDelayed(new Runnable() {@Overridepublic void run() {//指定选中的单号那一行,當從新增挂单/修改挂单/删除挂单界面時,需要將制定的商品滾動到第一列置顶.\//监听保存的textview的高度变化,每次刷新都会执行int parentHeight = order_main_scroll.getMeasuredHeight();//父scroll的整个高度int bottomHeight = jumpOrderTop.get(orderPosition).getTop();//所指定的textview距离父布局的高度int insHeight = jumpOrderTop.get(orderPosition).getHeight();//每行占据的高度//根据上述的数据,计算需要滚动的距离,以便让置顶的行置顶.int offset = (bottomHeight - parentHeight) + (parentHeight - insHeight) + insHeight;order_main_scroll.smoothScrollTo(0, offset);System.out.println("該商品距離父佈局的高度為" + jumpOrderTop.get(orderPosition).getTop() + "每个textview自身的高度"+ jumpOrderTop.get(orderPosition).getHeight() + "移動的距離為" + offset);}}, 2000);}
写的很乱,有问题可以讨论.提供如果不是使用listview如何将某一行置顶的方法.
0 0
- Android 使用addview生成列表,界面切换时将指定的行数滚动到列表的第一行
- 将DataGrid的SelectedItem滚动到第一行(WPF)
- 如何指定listview的某item滚动到在第一行
- 整理Android的列表的一行布局
- Android适配器顺利滚动到指定的位置。视图将滚动,显示指定的位置。
- 生成指定日期段的日期列表,月份列表
- 生成指定年份的工作日/休息日列表
- 查询列表,将数据显示在特定的行数
- android仿酷狗歌曲列表界面点击右侧字母定位到该字母的集合列表
- android 将自己的程序加入到系统调用列表
- 多个列表切换使用同一个listview,切换时回到各个列表之前的位置
- 使用JAVA SWING 实现列表以及列表的滚动条
- 滚动的列表
- 将一个列表的数据复制到另一个列表中。
- Egret的滚动list列表如何使用
- 对于《第一行代码》中的RecyclerView中的一个列表间距太远(占据一个界面)的问题
- 列表之间的切换
- 实用的列表切换
- php查询oracle date时间
- ceph pg split
- 大力推荐的超牛GitHub top 100的Java开源库
- 根据本地文件,生成百度云文件列表
- js获取ip地址
- Android 使用addview生成列表,界面切换时将指定的行数滚动到列表的第一行
- LA2995
- JAVA多线程(五)用lock、synchronized、阻塞队列三种方法实现生产者消费者模式
- C#中重新定义Console实现自动保存输出到文件
- Android Studio 2.1.1 更换主题 代码样式
- HDU 1075.What Are You Talking About【Map水题(字典树)】【5月25】
- Android 6.0 ConfirmCredential
- 实时人脸检测 (Real-Time Face Detection)
- 阿里云上CentOS6.5部署Django+nginx+uwsgi