在一些实验之后我做了一个满意的解决,它还保留了很好的滚动位置顶部可见项。

事实上,三种不同部分的信息需要保存和恢复: 状态( e .g列表。 其中组被展开),第一个可见项的索引和优良滚动位置。

不幸的是,似乎只有第一个保存由onSaveInstanceState可展开列表视图的方法,所以其他两个需要单独存储。 这不同于非可展开列表视图,其中,看来在onSaveInstanceState方法保存所需要的所有信息正确的恢复状态和位置列表( 对于这个主题,参看 Scroll到中的某一位置listView ) 。?

下面是代码段,之上ExpandableListActivity派生类:private static final String LIST_STATE_KEY = "listState";

private static final String LIST_POSITION_KEY = "listPosition";

private static final String ITEM_POSITION_KEY = "itemPosition";

private Parcelable mListState = null;

private int mListPosition = 0;

private int mItemPosition = 0;

然后,一些继承自:protected void onRestoreInstanceState(Bundle state) {

super.onRestoreInstanceState(state);

// Retrieve list state and list/item positions

mListState = state.getParcelable(LIST_STATE_KEY);

mListPosition = state.getInt(LIST_POSITION_KEY);

mItemPosition = state.getInt(ITEM_POSITION_KEY);

}

protected void onResume() {

super.onResume();

// Load data from DB and put it onto the list

loadData();

// Restore list state and list/item positions

ExpandableListView listView = getExpandableListView();

if (mListState != null)

listView.onRestoreInstanceState(mListState);

listView.setSelectionFromTop(mListPosition, mItemPosition);

}

protected void onSaveInstanceState(Bundle state) {

super.onSaveInstanceState(state);

// Save list state

ExpandableListView listView = getExpandableListView();

mListState = listView.onSaveInstanceState();

state.putParcelable(LIST_STATE_KEY, mListState);

// Save position of first visible item

mListPosition = listView.getFirstVisiblePosition();

state.putInt(LIST_POSITION_KEY, mListPosition);

// Save scroll position of item

View itemView = listView.getChildAt(0);

mItemPosition = itemView == null ? 0 : itemView.getTop();

state.putInt(ITEM_POSITION_KEY, mItemPosition);

}

它也能在我Froyo设备。

android expandablelist 自动滚动,在ExpandableListView中,如何保留滚动位置_android_开发99编程知识库...相关推荐

  1. svc android,在android中,如何使用 Svc WCF服务_android_开发99编程知识库

    我用Ksoap來打服務. 這是我的代碼:try { request = new SoapObject("http://tempuri.org/","GetUserDeta ...

  2. android居中不父布局,在父级中,TextView不会垂直居中_android_开发99编程知识库

    我的Activity 只有一个单一的to,我试图让文本垂直中心,但它最终与底部对齐. 我尝试改变几个属性,但没有. 以下是我所拥有的( 安卓 2.3 ):<?xml version=" ...

  3. android自动拨号 代码,在Android上,是否有一种方法可以强行自动自动拨号?_android_开发99编程知识库...

    我一直在研究一个 Android 应用 概念,在用户启动服务时,应用程序必须自动拨号. 我发现,当应用程序尝试自动拨号时,手机( 还是叫 Intent ) 不会自动拨号,而用户必须手动启动服务. 目前 ...

  4. android onresume时view,在onResume中,但通过 invalidate() 方法失败,Android: Graphview更新_android_开发99编程知识库...

    我正在研究一個應用程序,其中一個自定義視圖由一些後端邏輯更新. 自定義視圖在 onResume() 方法中更新,但不能通過 view.invalidate(); 更新. 我想讓這個視圖更新按鈕的onc ...

  5. android数据库查找一个字符,Android - 如何在Firebase数据库中对字符串进行简单搜索?_android_开发99编程知识库...

    这个问题可能很旧,但是,有一种文档化方式,如何实现这种方式,很简单,引用 : 要启用云Firestore数据的全文搜索,请使用第三方搜索服务(如Algolia ,考虑一个笔记记录应用程序,其中每个笔记 ...

  6. android settext无效,在调用 setText() 并使( ) 无效后,在画布上正确地调用,TextView无法绘制_android_开发99编程知识库...

    我的目的是製作一個 Bitmap 圖像顯示用戶提供的文本,然後圖像可以保存到緩存中. 調用 TextView.setText() 和 TextView.invalidate() 之後,TextView ...

  7. android背景图拉伸,Android使背景图像不拉伸它指定的视图_android_开发99编程知识库...

    图片的最大值在将图片分配到背景时,它看起来像是什么,而不是. 如果图像大于表,我非常喜欢它不伸展顶部 TableView . 我已经包含了一个空的"视图",以便为表背景提供一些额外 ...

  8. mvc @html.editorfor,在MVC中,@Html.EditorFor(m = ( )_CSharp_开发99编程知识库

    1 .@Html.EditorFor(m => m)顯示整個模型編輯器. @Html.EditorFor(m => m.propertyName)顯示模型的特定屬性編輯器. 2 . @Ht ...

  9. android 代码 lut,在ScriptIntrinsic3DLUT上,如何将LUT分配给用户?_android_开发99编程知识库...

    一般来说,这个脚本的工作方式与其他创建RS上下文 使用这里上下文创建脚本 创建输入和输出分配 设置脚本参数 调用内核 可能在 set script parameters 步骤中出现问题,从文档我应该调 ...

最新文章

  1. 地址池命令 思科理由_思科互联网络操作系统 ——路由器接口
  2. 【全栈项目上线(vue+node+mongodb)】04. 怎么在一台主机上面部署多个网站,详细操作指南...
  3. java 获取当前ip_不停机还能替换代码?6年的 Java程序员表示不可思议
  4. 成功解决ValueError: Parameter values for parameter (max_depth) need to be a sequence.
  5. a标签点击后变色_中国科学家研发的不退色的变色环保图料登上《科学》子刊...
  6. android sharedpre,Android SharedPreferences四种操作模式使用详解_Android_脚本之家
  7. python opengl加速_OpenGL with python 渲染加速
  8. TCP/IP协议的SYN攻击
  9. 【重复提交表单】表单重复提交的三种情况,解决办法
  10. C语言在计算机专业的功能,C语言程序设计在高职院校计算机专业教学中重要作用.pdf...
  11. Tensorflow之安装
  12. vivo手机怎么投屏到电脑_投屏软件电脑加手机投屏软件投屏
  13. 《论文笔记》Collaborative Visual Inertial SLAM for Multiple Smart Phones
  14. (day 49 - 另起数组牺牲空间换取时间 ) 剑指 Offer 66. 构建乘积数组
  15. 淘宝API介绍-淘宝的 API 开放到什么程度?哪些数据是可以抓取的,哪些不能?
  16. 基于单片机的出租车计价计费系统设计(#0508)
  17. 研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的。...
  18. UnicodeDecodeError: 'shift_jis' codec can't decode byte 0x93 in position 4: illegal multibyte sequen
  19. java计算税率例子
  20. 计算机如何连接wifi台式,回答如何将台式计算机连接到WiFi

热门文章

  1. 计算机二级考试题停车收费,计算机二级考试真题-Excel-停车场调整收费标准
  2. linux rpm 修复,记录一下修复yum及rpm的过程
  3. html中怎么显示错误信息,在html中显示为内嵌错误的文本
  4. SQL Server 数据库优化
  5. Swift WKWebView读取本地html
  6. wordpress 后台页面无法显示绑定的台湾语言
  7. 链式链表的C风格实现
  8. 静态方法里面不能调用非静态属性
  9. java,关键字static
  10. 剑指Offer 二维数组中的查找