ScrollView 滚动视图
ScrollView 种类:
1.HorizontalScrollView:水平滚动视图
2.ScrollView:垂直滚动视图(常用类)


public class MainActivity extends AppCompatActivity {
private TextView text;
private ScrollView scrollView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//注册控件
text = (TextView) findViewById(R.id.txt);
scrollView = (ScrollView) findViewById(R.id.scrollview);
//设置text文本内容
text.setText(getResources().getString(R.string.context));
//设置ScrollView滚动条不可见
scrollView.setVerticalScrollBarEnabled(false);
scrollView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_UP:{
break;
}
case MotionEvent.ACTION_DOWN:{
break;
}
case MotionEvent.ACTION_MOVE:{
//顶部状态
if(scrollView.getScrollY() <= 0){
Log.i( "main", "到达顶部");
}
//底部状态
//TextView的总高度 <= 一屏幕的高度 + 滚动条的滚动距离
if(scrollView.getChildAt(0).getMeasuredHeight() <= scrollView.getHeight() +
scrollView.getScrollY()){
Log.i("main","到达底部" + "总高度" + scrollView.getChildAt(0).getMeasuredHeight() + "一屏幕高度" + scrollView.getHeight() + "滚动条滚动距离" + scrollView.getScrollY());
//添加内容
text.append(getResources().getString(R.string.context));
}
break;
}
}
return false;
}
});
}

按钮滚动
scrollTO(x,y) 跳转到固定坐标
scrollBy(x,y)相对当前位置移动x,y
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//注册控件
text = (TextView) findViewById(R.id.txt);
scrollView = (ScrollView) findViewById(R.id.scrollview);
up_btn = (Button) findViewById(R.id.up);
down_btn = (Button)findViewById(R.id.down); //按钮点击监控事件
up_btn.setOnClickListener(this);
down_btn.setOnClickListener(this); //设置text文本内容
text.setText(getResources().getString(R.string.context)); //设置ScrollView滚动条不可见
scrollView.setVerticalScrollBarEnabled(false); scrollView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_UP:{
break;
} case MotionEvent.ACTION_DOWN:{
break;
} case MotionEvent.ACTION_MOVE:{
//顶部状态
if(scrollView.getScrollY() <= 0){
Log.i( "main", "到达顶部");
}
//底部状态
//TextView的总高度 <= 一屏幕的高度 + 滚动条的滚动距离
if(scrollView.getChildAt(0).getMeasuredHeight() <= scrollView.getHeight() +
scrollView.getScrollY()){
Log.i("main","到达底部" + "总高度" + scrollView.getChildAt(0).getMeasuredHeight() + "一屏幕高度" + scrollView.getHeight() + "滚动条滚动距离" + scrollView.getScrollY());
//添加内容
text.append(getResources().getString(R.string.context));
}
break;
}
}
return false;
}
}); } @Override
public void onClick(View v) {
switch (v.getId()){
case R.id.up:{
scrollView.scrollBy(0,-30);
break;
} case R.id.down:{
scrollView.scrollBy(0,+30);
break;
}
}
}
ScrollView 滚动视图的更多相关文章
- [Unity]Unity开发NGUI代码实现ScrollView(滚动视图)
Unity开发NGUI代码实现ScrollView(滚动视图) 下载NGUI包 导入NGUI3.9.1版本package 链接: http://pan.baidu.com/s/1mgksPBU 密码: ...
- 从零開始学android<ScrollView滚动视图.十八.>
因为手机屏幕的高度有限.所以假设面对组件要显示多组信息的时候,ScrollView视图(滚动视图)能够有效的安排这些组件,浏览时能够自己主动的进行滚屏的操作. android.widget.Scrol ...
- Android中通过Java代码实现ScrollView滚动视图-以歌词滚动为例
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...
- Xamarin iOS教程之进度条和滚动视图
Xamarin iOS教程之进度条和滚动视图 Xamarin iOS 进度条 进度条可以看到每一项任务现在的状态.例如在下载的应用程序中有进度条,用户可以很方便的看到当前程序下载了多少,还剩下多少.Q ...
- OCUI界面设计:滚动视图与分页控件初探
滚动视图(UIScrollView) 简单介绍 1.UIScrollView滚动视图能够排列并显示超出自身显示范围的内容. 2.UIScrollView内部整合了多种手势来达到丰富的界面展示效果. 3 ...
- iOS学习笔记——滚动视图(scrollView)
滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性 @interface BoViewController : UIViewController<UIScro ...
- Android 自学之滚动视图ScrollView
滚动视图ScrollView由FarmeLayout派生而出,他就是一个用于为普通组件添加垂直滚动条的组件:ScrollView里面最多包含一个组件,而ScrollView的作用就是为该组件添加一个垂 ...
- 制作滚动视图(ScrollView)
怎样判断是否应当使用滚动视图 所谓的滚动视图,是指一个可以滑动的视窗,视窗大小和位置固定不变,视窗内的内容用户可以通过手指滑动或者拖动滚动天来进行滚动浏览. 滚动视图的目的是为了解决同类内容过多,一个 ...
- 滚动视图(ScrollView)的功能与用法
滚动视图ScrollView由FrameLayout派生而出,它就是一个用于为普通组件添加滚动条的组件.ScrollView里最多只能包含一个组件,而ScrollVew的作用就是为该组件添加垂直滚动条 ...
随机推荐
- Spring Boot Lombok配置
Spring Boot Lombok配置 依赖添加 dependencies { annotationProcessor 'org.projectlombok:lombok:1.18.2' compi ...
- js有序数组中插入一个元素,并有序的输出
题目:比较传入函数的参数,将参数组成数组,从小到大排序,返回新的数组. 如: insert();console.log(arr); //[] insert(-1,-2); console.log(ar ...
- k8s集群证书过期(kubeadm 1.10.2 )
1.k8s 集群架构描述 kubeadm v1.10.2创建k8s集群. master节点高可用,三节点(10.18.60.3.10.18.60.4.10.18.60.5). LVS实现master三 ...
- USACO 1.1 Greedy Gift Givers
模拟. 如果用$map$的话,会很好写. 如果你不会$map$的话,在此小广告:https://blog.csdn.net/CQBZLYTina/article/details/80063739 /* ...
- SQL ------ JDBC 删除指定的某条记录
package demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; ...
- 用Blackbox Exporter to Monitor web和端口
1.按照exporter .wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.12.0/blackbo ...
- Node数据库入门(登录注册功能)
1.安装 (1).mysql模块安装 npm i mysql -D (2).co-msql模块安装(该模块不是一个独立的模块,而是mysql的封装,他可以把普通接连封装成一个可以做异步调用的连接) n ...
- 【Python】【demo实验6】【练习实例】【奖金发放计算(阶梯)】
题目: 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万 ...
- Recordset对象的Open方法
Recordset对象的Open方法原型: Open([Source],[ActiveConnection],[CursorType],[LockType],[Options]) CursorType ...
- FZU2275 Game(kmp
暑假wa的题了,,,看见vj的attempt痕迹打算挨个补了,简单kmp题,判断bob的串是不是全为0或者是alice的字串就好了 #include<algorithm> #include ...