Android Scroller如何与ListView结合使用

655Z技术栈 Android 13小时前 5

要将Android Scroller与ListView结合使用,可以通过自定义ListView来实现滚动效果。以下是一个简单的示例代码:

  1. 创建一个CustomListView类,继承自ListView,并重写其onTouchEvent方法:
public class CustomListView extends ListView { private Scroller mScroller; public CustomListView(Context context) { super(context); mScroller = new Scroller(context); } @Override public boolean onTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { if (!mScroller.isFinished()) { mScroller.abortAnimation(); } } mScroller.computeScrollOffset(); return super.onTouchEvent(ev); } @Override public void computeScroll() { if (mScroller.computeScrollOffset()) { smoothScrollTo(0, mScroller.getCurrY()); invalidate(); } } public void smoothScrollTo(int destX, int destY) { int scrollY = getScrollY(); int delta = destY - scrollY; mScroller.startScroll(0, scrollY, 0, delta, 1000); invalidate(); } }
  1. 在布局文件中使用CustomListView替代普通的ListView:
<com.example.CustomListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" />
  1. 在Activity中设置Adapter,并调用smoothScrollTo方法来实现滚动效果:
CustomListView listView = findViewById(R.id.listView); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, new String[]{"Item 1", "Item 2", "Item 3"}); listView.setAdapter(adapter); listView.smoothScrollTo(0, 100); // 滚动到指定位置

通过以上步骤,就可以实现在ListView中使用Android Scroller来实现滚动效果。

提供PHP及ThinkPHP框架的定制开发、代码优化,PHP修改、ThinkPHP修改。

邮箱:yvsm@163.com 微信:yvsm316 QQ:316430983
关闭

用微信“扫一扫”