当前位置:   article > 正文

ScrollView实现界面自动滚动_scrollview自动滚动

scrollview自动滚动

Android 目录:Android 目录-CSDN博客

在Android项目中,有时我们需要实现自动滚屏或者根据选择跳转到指定位置的功能。这里用到的主要组件就是滚动视图(ScrollView)

以下主要介绍使用ScrollView如何实现界面自动滚动

1、声明控件对象

  1. private LinearLayout linearLayout = null;
  2. private ScrollView scrollView = null;

2、获得控件对象

  1. linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
  2. scrollView = (ScrollView) findViewById(R.id.scrollView);

3、定义一个Handler对象

private final Handler handler = new Handler();

4、实现滚动线程;

  1. private Runnable ScrollRunnable = new Runnable() {
  2. @Override
  3. public void run() {
  4. int off = linearLayout.getMeasuredHeight() - scrollView.getHeight();
  5. if (off > 0) {
  6. scrollView.scrollBy(0, 30);
  7. if (scrollView.getScrollY() == off) {
  8. Thread.currentThread().interrupt();
  9. } else {
  10. handler.postDelayed(this, 1000);
  11. }
  12. }
  13. }
  14. };

5、在自动滚动按钮上添加监听器

btnSelf.setOnClickListener(new btnSelfListener());

6、实现自动滚动按钮监听器

  1. /*
  2. * 自动滚动按钮监听器
  3. */
  4. class btnSelfListener implements OnClickListener {
  5. @Override
  6. public void onClick(View v) {
  7. // 当前按钮文字是自动滚动
  8. if (btnSelfStr == R.string.selfMotion) {
  9. // 将按钮文字设为“停止滚动”
  10. btnSelf.setText(R.string.stopSelfMotion);
  11. btnSelfStr = R.string.stopSelfMotion;
  12. // 开始自动滚动
  13. handler.post(ScrollRunnable);
  14. } else {
  15. // 将按钮文字设为“自动滚动”
  16. btnSelf.setText(R.string.selfMotion);
  17. btnSelfStr = R.string.selfMotion;
  18. // 停止自动滚动
  19. handler.removeCallbacks(ScrollRunnable);
  20. }
  21. }
  22. }

这样我们就实现了布局的自动滚动。那么如何实现根据选择直接跳转到指定的位置呢?

直接跳转主要用到以下方法

  1. // 跳转至开头
  2. scrollView.fullScroll(ScrollView.FOCUS_UP);
  3. // 跳转至结尾
  4. scrollView.fullScroll(ScrollView.FOCUS_DOWN);

1、在跳转按钮上添加监听器

btnGoto.setOnClickListener(new btnGotoListener());

2、实现该监听器

  1. /*
  2. * 跳转按钮监听器
  3. */
  4. class btnGotoListener implements OnClickListener {
  5. int choice = -1;
  6. @Override
  7. public void onClick(View v) {
  8. // 弹出跳转设置对话框
  9. new AlertDialog.Builder(MainActivity.this)
  10. .setTitle("跳转设置")
  11. .setSingleChoiceItems(new String[] { "开头", "结尾" }, -1,
  12. new DialogInterface.OnClickListener() {
  13. @Override
  14. public void onClick(DialogInterface dialog,
  15. int which) {
  16. switch (which) {
  17. case 0:
  18. choice = 0;
  19. break;
  20. case 1:
  21. choice = 1;
  22. break;
  23. }
  24. }
  25. })
  26. .setPositiveButton("跳转",
  27. new DialogInterface.OnClickListener() {
  28. @Override
  29. public void onClick(DialogInterface dialog,
  30. int which) {
  31. switch (choice) {
  32. case 0:
  33. // 跳转至开头
  34. scrollView
  35. .fullScroll(ScrollView.FOCUS_UP);
  36. break;
  37. case 1:
  38. // 跳转至结尾
  39. scrollView
  40. .fullScroll(ScrollView.FOCUS_DOWN);
  41. break;
  42. }
  43. }
  44. }).setNegativeButton("返回", null).show();
  45. }
  46. }

这样我们就实现了布局的自动滚动。

源码:http://download.csdn.net/detail/dkbnull/9298787

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/312646
推荐阅读
相关标签
  

闽ICP备14008679号