xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.android_scollview.MainActivity" >
<Button
android:id="@+id/up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="up"
/>
<Button
android:id="@+id/down"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="down"
/> <ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scroll1"
android:scrollbars="none">
<!--
ScrollView 的种类:
ScrollView:垂直滚动视图
HorizontalScrollView:水平滚动视图
隐藏ScrollView
(1)标签属性:scrollbars 设置不显示纵向滚动条
(2)代码设置:
setVerticalScrollBarEnabled(false);隐藏纵向ScrollView
setHorizontalSrollBarEnabled(false);隐藏横向ScrollView -->
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text" />
</ScrollView>
</LinearLayout>

main.java

package com.example.android_scollview;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TextView;
/**
* 应用案例:判断ScrollView何时滑动到底部
* 利用setOnTouchListener
*
*/
public class MainActivity extends Activity implements OnClickListener{ private TextView tv;
private ScrollView scroll;
private Button up;
private Button down; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
up = (Button) findViewById(R.id.up);
down = (Button) findViewById(R.id.down); up.setOnClickListener(this);
down.setOnClickListener(this);
tv = (TextView) findViewById(R.id.text);
scroll = (ScrollView) findViewById(R.id.scroll1);
scroll.setOnTouchListener(new OnTouchListener() { @Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:{
/**
* (1)getScrollY()--滚动条滑动的距离
* (2)getMeasuredHeight--显示的高度加上隐藏的高度
* (3)getHeight
*/
//顶部状态
if(scroll.getScaleY()<=0){
Log.i("Main", "顶部状态");
}
//底部状态
//TextView的总高度<=一屏幕的高度+滚动条滚动的距离
if(scroll.getChildAt(0).getMeasuredHeight()<=scroll.getHeight()+scroll.getY()){
Log.i("Main", "底部状态");
}
break;
} } return false;
}
});
} @Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
/**
* scroll的两种滑动方式:
* scrollTo:以滚动视图起始位置开始计算
* scrollBy:相对前一次的位置,去滚动对应的距离
*/
case R.id.up:{
scroll.scrollBy(0, -30);
break;
}
case R.id.down:{
scroll.scrollBy(0, 30);
break;
}
}
}
}

Android_scrollview的更多相关文章

随机推荐

  1. Oracle函数面试题

    1.对字符串操作的函数? 答:ASCII() –函数返回字符表达式最左端字符的ASCII 码值 CHR() –函数用于将ASCII 码转换为字符 –如果没有输入0 ~ 255 之间的ASCII 码值C ...

  2. create a C# context menu from code

    I try the one of your approach, it works well in my computer. Below is my code: public void AddConte ...

  3. codeforces 629D 树状数组+LIS

    题意:n个圆柱形蛋糕,给你半径 r 和高度 h,一个蛋糕只能放在一个体积比它小而且序号小于它的蛋糕上面,问你这样形成的上升序列中,体积和最大是多少 分析:根据他们的体积进行离散化,然后建树状数组,按照 ...

  4. appium初探问题总结

    自从搭建好环境后,运行一个appdemo各种奇葩问题层出不穷,过后可能觉得是挺简单的问题,但对于初次接触的人来说,有砸电脑的冲动也不为过·这里将自己所遇到的问题记录下来,备忘. 问题一:照着网上的教程 ...

  5. log4net使用的一点心得

    关于使用log4net的文章很多,把自己在使用中查到的文章列一下. log4net 可以存在很多地方 比如console,数据库.邮箱.文本等等.我要实现的是 所有的日志都记录到html文件中,可以按 ...

  6. windows7开启虚拟wifi和虚拟无线AP的方法

         你可以开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网. 1.点开始  所有程序   命令提示符右键管理员身份运行命令 ...

  7. [iOS基础控件 - 6.7] 微博展示 使用代码自定义TableCell(动态尺寸)

    A.需求 1.类似于微博内容的展示 2.头像 3.名字 4.会员标志 5.内容 6.分割线 7.配图(可选,可有可无)   code source: https://github.com/hellov ...

  8. 转载 C#中敏捷开发规范

    转载原地址 http://www.cnblogs.com/weixing/archive/2012/03/05/2380492.html 1.命名规则和风格 Naming Conventions an ...

  9. android 文件上传

    1.java原生上传 拼接上传的字符串 2.HttpClient方式上传 1.导入httpClient jar(core.mime)包 2.设置FileBody.MultiPartEntity.发送请 ...

  10. 【Stage3D学习笔记续】山寨Starling(五):纹理计算和尺寸计算

    尺寸计算: Starling中的尺寸是以像素为单位的,这一切都得力于我们使用的正交矩阵,还记得我们顶点数据中的位置数据么,如果我们提交的矩形的四个顶点为(0, 0)(0, 100)(100, 0)(1 ...