您的位置:首页 > 移动开发 > Android开发

Android 开发技巧之 手动拖动滚动条快速滑动

2011-09-26 14:52 549 查看
android手动拖动滚动条快速滑动



只需在ListView中加入一个参数

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

android的源代码如下:

在contacts_list_content.xml中:

<com.android.contacts.FocusRequestingListView android:id="@android:id/list"

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焦点。

很多开发者不知道ListView列表控件的快速滚动滑块是如何启用的,这里Android开发网告诉大家,辅助滚动滑块只需要一行代码就可以搞定,如果你使用XML布局只需要在ListView节点中加入 android:fastScrollEnabled="true" 这个属性即可,而对于Java代码可以通过myListView.setFastScrollEnabled(true); 来控制启用,参数false为隐藏。

还有一点就是当你的滚动内容较小,不到当前ListView的3个屏幕高度时则不会出现这个快速滚动滑块,同时该方法仍然是AbsListView的基础方法,可以在ListView或GridView等子类中使用快速滚动辅助。

原文:http://www.godiscat.com/read.php?tid=90
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: