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. 【JMeter】JMeter完成一个java请求的压测

    先定义一下我说的remoteService:即远程调用服务,没有http的url.不对外提供或者对外提供有限的服务.具体视各公司的代码架构所定,比如有些公司为web工程,scf服务,db.scf即为服 ...

  2. [Tommas] 测试用例覆盖率(二)

    二.详细用例的设计 划分好了测试项,接着就是针对各个测试项,考虑具体的测试用例了.根据测试项的特点,测试用例的设计角度也有所不同.下面我们就来看看通常的功能点测试用例,该从哪些角度出发来进行设计: 1 ...

  3. dynamips虚拟服务:找不到指定设备

    刚开始接触dynamips,属于新手, 之前是可以正常使用dynamips的,但不知道什么原因就出现这样的问题 果断重新安装,之后可以正常使用

  4. NGUI如何创建自己的精灵图集

    说实话其实很简单,但是在不知道的情况下真的不好弄啊. 1. 选择你要制作精灵图集的图片,可以选择多张 2. 提倡使用快捷键Alt + Shift + M 会有如下窗口弹出,也可以NGUI --> ...

  5. CSS换行:word-wrap、word-break和text-wrap区别

    一.word-wrap:允许对长的不可分割的单词进行分割并换行到下一行.(中英文处理效果一样) word-wrap有两个取值: 1.word-wrap: normal:只在允许的断字点换行(浏览器保持 ...

  6. NOIP2006 2k进制数

    2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换 ...

  7. 关于java线程池 Ⅱ

    上一篇翻译了线程池主要部分的api,经过一段时间的学习,这里记录一下这段时间对jdk自带线程池的学习成果. 为了方便说明,先放一张类图,包括了jdk线程池主要涉及到的类,为了条理清晰去掉了部分依赖和关 ...

  8. pip 安装python环境及打包

    0.安装虚拟环境 pip install virtualenv   virtualenv env1   source env1/bin/activate   1. 将包依赖信息保存在requireme ...

  9. HW6.6

    public class Solution { public static void main(String[] args) { int[] prime = new int[50]; prime[0] ...

  10. Pritunl:简易搭建个人VPN及年费200的超编译独立主机 BandwagonHost

    https://pao-pao.net/article/213 Pritunl:简易搭建个人VPN 文/ Vergil 一 直以来安装 VPN 服务.提供全局加密代理,是租用VPS(虚拟主机)的一个重 ...