目录
- 操作环境
- 导读
- 调用方式
- 布局文件设置
- 源码分析
- 实例
操作环境
- 操作系统: win7-64bit 旗舰版
- android 版本: android-23
- 模拟器:海马玩模拟器 0.9.0 Beta( android 4.2.2 )
导读
默认情况下,当添加的 Item 超出 ListView 的范围后,ListView 并没有刷新让最新一条显示出来。而在 qq/微信 聊天中,发新的消息后会自动滚动显示出最下面的一条信息。
调用方式
- AbsListView.java:
public int getTranscriptMode() // 用于查询当前的 transcript 模式
void setTranscriptMode(int mode) // 用于设置 transcript 模式
AbsListView.TRANSCRIPT_MODE_DISABLED // 禁用
AbsListView.TRANSCRIPT_MODE_NORMAL // 正常状态
AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL // 总是滚动到最新一条
布局文件设置
<ListView android:id="@+id/lv_test"
android:layout_width="match_parent"
android:layout_height="300dp"
<!-- 以下模式只能选一种 -->
android:transcriptMode="normal"
android:transcriptMode="disabled"
android:transcriptMode="alwaysScroll"
>
源码分析
- 获取当前模式:
/**
* Returns the current transcript mode.
*
* @return {@link #TRANSCRIPT_MODE_DISABLED}, {@link #TRANSCRIPT_MODE_NORMAL} or
* {@link #TRANSCRIPT_MODE_ALWAYS_SCROLL}
*/
public int getTranscriptMode() {
return mTranscriptMode;
}
- 设置模式:
/**
* Puts the list or grid into transcript mode. In this mode the list or grid will alway