使用ScrollView实现滚动
2016-02-16 15:59
696 查看
一、ScrollView介绍
滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动来显示完整的视图二、ScrollView的种类
HorizontalScrollView:水平滚动视图ScrollView:垂直滚动视图
<HorizontalScrollView android:id="@+id/scroll" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none"> <TextView android:id="@+id/content" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </HorizontalScrollView>
三、隐藏ScrollView
(1)标签属性:android:scrollbars=”none”(2)代码设置:
setHorizontalScrollBarEnabled(false);隐藏横向ScrollView
setVerticalScrollBarEnabled(false);隐藏纵向ScrollView
四、setOnTouchListener的使用
应用案例:判断ScrollView何时滑动到底部public class MainActivity extends AppCompatActivity { private TextView tv; private ScrollView scroll; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv= (TextView) findViewById(R.id.content); tv.setText(getResources().getString(R.string.content)); scroll = (ScrollView) findViewById(R.id.scroll); scroll.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()){ case MotionEvent.ACTION_MOVE: { /** * (1)getScrollY()---滚动条滑动的距离 * (2)getMeasuredHeight()获取的整个高度 * (3)getHeight() */ //顶部状态 if(scroll.getScrollY()<=0) { Log.i("Main", "顶部"); } //底部状态 //TextView的总高度<=一屏幕的高度+滚动条的滚动距离 if(scroll.getChildAt(0).getMeasuredHeight()<=scroll.getHeight()+scroll.getScrollY()){ Log.i("Main","底部"); Log.i("Main","scroll.getChildAt(0).getMeasuredHeight()<=scroll.getHeight()="+scroll.getChildAt(0).getMeasuredHeight()+"scrol,getHeight()="+scroll.getHeight()+"scroll.getScrollY()="+scroll.getScaleY()); tv.append(getResources().getString(R.string.content));//滑动到底部追加新的文字 } break; } } return false; } }); }
五、控制ScrollView视图位置
1、scrollTo和ScrollBy区别应用案例:控制ScrollView视图位置
@Override public void onClick(View view) { switch (view.getId()){ //scrollTo:以滚动视图其实位置开始计算 //scrollBy:相对前一次位置,去滚动对应的距离 case R.id.up: { scroll.scrollTo(0,-30); break; } case R.id.down: { scroll.scrollTo(0,30); break; } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories