今天想实现android通讯录中,那种手动可以拖拽着滚动条滑动的效果,如下图:
[img]http://dl.iteye.com/upload/attachment/463775/497d2fbc-e632-397f-a0a9-2534c8e32e33.png[/img]
查看了android的源代码,发现只需在ListView中加入一个参数

android:fastScrollEnabled="true" android:focusable="true"

android的源代码如下:

在contacts_list_content.xml中:

android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fastScrollEnabled="true"
/>
而FocusRequestingListView 的源代码如下:

public class FocusRequestingListView extends ListView {

private boolean mFirstLayoutDone = false;

public FocusRequestingListView(Context context) {
super(context);
}

public FocusRequestingListView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public FocusRequestingListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
if (!mFirstLayoutDone) {
setFocusable(true);
requestFocus();
}
mFirstLayoutDone = true;
}
}
其实有用的就这么两句话,

if (!mFirstLayoutDone) {
setFocusable(true);
requestFocus();
}
mFirstLayoutDone = true;
说的意思就是在什么情况下设置focusable焦点。

更多相关文章

  1. eclipse中查看Android(安卓)SDK源代码
  2. Android属性之android:priority
  3. Android下修改SeekBar样式
  4. SDK Platform Tools component is missing! Please use the SDK
  5. android 源代码结构
  6. android 向web服务器发送post请求并获取结果
  7. android 最全 各种UI效果 UI框架 github框架总结大全
  8. Android终于公布源代码
  9. FFmpeg的Android平台移植—编译篇

随机推荐

  1. titanium更改默认图片
  2. Android(安卓)动画总结-帧动画
  3. Android studio 3.5.2真机调试_连接手机
  4. Android(安卓)Intent的几个主要用法--发
  5. Android Studio 学习 - 基本控件的使用;In
  6. Android(安卓)volley 使用OkHttp3.0
  7. 知识梳理:Android子线程中更新UI的3种方法
  8. android自定义Dialog实现底部弹窗
  9. 下载编译android kernel
  10. Android studio 编译时出现Process 'comm