以前写的Scrollview ,通常都是与Listview结合使用,不过因复杂可能新手不太懂,网上有许多文章,这里就不贴那个了DEMO了. 

写了个简单的供大家参考:这样比较好理解(需要复杂的可以Q我,这里的博客不经常上的)

出处:http://blog.csdn.net/djy1992/article/details/9223019

首先是JAVA主代码:

package com.dudu.djy;   
 
import android.app.Activity;   
import android.os.Bundle;   
import android.os.Handler;   
import android.view.KeyEvent;   
import android.view.View;   
import android.widget.Button;   
import android.widget.LinearLayout;   
import android.widget.ScrollView;   
import android.widget.TextView;

/***
    * scrollview
    * @author dujinyang
   *
   */
public class ScrollViewTests extends Activity {   
   /** Called when the activity is first created. */  
   private LinearLayout mLayout;   
   private ScrollView scView;   
   private final Handler mHandler = new Handler();   
 
   @Override  
   public void onCreate(Bundle savedInstanceState) {   
       super.onCreate(savedInstanceState);   
       setContentView(R.layout.main);   
        //初始化操作
       mLayout = (LinearLayout) this.findViewById(R.id.LinearLayout);    
       scView= (ScrollView) this.findViewById(R.id.ScrollView);

Button mBtn = (Button) this.findViewById(R.id.Button);   
       mBtn.setOnClickListener(mClickListener);// 添加点击事件监听   
   }

//监听返回事件  可以不要
   public boolean onKeyDown(int keyCode, KeyEvent event){   
       Button bt = (Button) this.getCurrentFocus();   
       int count = mLayout.getChildCount();   
       Button bm = (Button) mLayout.getChildAt(count-1);   
 
       if(keyCode==KeyEvent.KEYCODE_DPAD_UP && bt .getId()==R.id.Button){   
           bm.requestFocus();   
           return true;   
       }else if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN && bt .getId()==bm.getId()){   
           this.findViewById(R.id.Button).requestFocus();   //取消焦点
           return true;   
       }   
       return false;   
   }

// Button事件监听,当点击第一个按钮时增加一个button和一个textview   

//这里只是做个增加按钮和数据的
   private Button.OnClickListener mClickListener = new Button.OnClickListener() {   
 
       private int index = 1;   
 
       @Override  
       public void onClick(View v) {   
           TextView tv= new TextView(ScrollViewTest.this);//定义一个TextView   
           tView.setText("TextView" + index);//设置TextView的文本信息   
           //设置线性布局的属性   
           LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(   
                   LinearLayout.LayoutParams.FILL_PARENT,   
                   LinearLayout.LayoutParams.WRAP_CONTENT);   
           mLayout.addView(tv, params);//添加一个TextView控件   
           Button button = new Button(ScrollViewTest.this);//定义一个Button   
           button.setText("Button" + index);//设置Button的文本信息   
           button.setId(index++);//id   
           mLayout.addView(button, params);//添加一个Button控件   
           mHandler.post(mScrollToButton);//传递一个消息进行滚动   
       }   
 
   };

  //传递一个消息进行滚动 
   private Runnable mScrollToButton = new Runnable() {   
 
       @Override  
       public void run() {   
           int off = mLayout.getMeasuredHeight() - scView.getHeight();   
           if (off > 0) {   
               scView.scrollTo(0, off);//改变滚动条的位置   
           }   
       }    
   };    
 
}

然后是main.xml文件:


<?xml version="1.0" encoding="utf-8"?>   


<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"  
       android:id="@+id/ScrollView"

android:layout_width="fill_parent"  

        android:layout_height="wrap_content"

android:scrollbars="vertical">   

<!--初始化时的数据-->
   <LinearLayout android:id="@+id/LinearLayout"  
          android:orientation="vertical" android:layout_width="fill_parent"  
          android:layout_height="wrap_content">   
       <TextView android:id="@+id/TestView" android:layout_width="fill_parent"  
                  android:layout_height="wrap_content" android:text="TestView0" />   
       <Button android:id="@+id/Button" android:text="Button0" android:layout_width="fill_parent"  
                  android:layout_height="wrap_content"></Button>   
   </LinearLayout>  

 
</ScrollView>  


代码共享完成.

android scrollview 简单的使用的更多相关文章

  1. Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)

    Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动 ...

  2. Android 实现简单音乐播放器(二)

    在Android 实现简单音乐播放器(一)中,我介绍了MusicPlayer的页面设计. 现在,我简单总结一些功能实现过程中的要点和有趣的细节,结合MainActivity.java代码进行说明(写出 ...

  3. Android 实现简单音乐播放器(一)

    今天掐指一算,学习Android长达近两个月了,今天开始,对过去一段时间的学习收获以及遇到的疑难杂症做一些总结. 简单音乐播放器是我自己完成的第一个功能较为完整的APP,可以说是我的Android学习 ...

  4. Android课程---Android Studio简单设置

    Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings-->Appearance-->Theme, ...

  5. Android实现简单音乐播放器(MediaPlayer)

    Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能 ...

  6. Android实现简单拨号器

    Android实现简单拨号器 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 代码实现 界面布局只有GridLayout和EditText两个控件,全部 ...

  7. 【转】Android Studio简单设置

    原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...

  8. Android ScrollView用法

    Android ScrollView用法 今天试着使用了一下Android的滚轮,以下是一个小小的测试,读取测试文件,主要是使用scrollTo函数和getScrollY(),程序点击BUTTON按钮 ...

  9. Android发展简单介绍

    Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...

随机推荐

  1. python学习之路-11 多线程、多进程、协程

    python内置队列模块 queue queue的四种队列 q = queue.Queue() # 先进先出队列 q = queue.LifoQueue() # 后进先出队列 q = queue.Pr ...

  2. 小贝_mysql建表以及列属性

    mysql建表以及列属性 简要: 一.建表原则 二.具体的列属性说明 一.建表原则 建表: 事实上就是声明列的过程,数据终于是以文件的形式放在硬盘(内存) 列: 不同的列类型占的空间不一样. 选列的原 ...

  3. boost 定时器.

    #include <iostream> #include <boost/asio.hpp> int main() { boost::asio::io_service io; b ...

  4. Linux 下提高make的编译效率

    Linux下安装程序,一般都通过包管理器安装,但是包管理器或软件商店里的软件往往不是最新版本的,安装最新版软件时通常是下载源代码进行编译. 编译安装源代码时就离不开make了,但是make是单线程的, ...

  5. CCS v5 无法启动解决办法及Launchpad仿真器电脑无法识别解决方法

    安装ccs_setup_5.1.1.00028.exe后(无论是自己装eclipse还是在原来的基础上安装eclipse的插件),ccs5的应用无法打开,错误为:An error has occurr ...

  6. Cookie同域,跨域单点登录(转)

    Cookie 同域单点登录 最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现在为了满足客户需求,在不使用控件情况下实现单点登录,先来介绍一下单点登录. 单点登 ...

  7. VB短信猫开发包,支持超长短信

    一.短信猫开发包(长短信/异步调用)说明:   短信猫开发包以OCX控件的形式提供,支持Windows平台下常用的开发工具:如VB.VB.net.VC++.Power Builder.C#.DELPH ...

  8. asp.net缓存(二)

    ASP.NET页面局部缓存 有时缓存整个页面是不现实的,因为页的某些部分可能在每次请求时都需要变化.在这些情况下,只能缓存页的一部分.顾名思义,页面部分缓存是将页面部分内容保存在内存中以便响应用户请求 ...

  9. NSURL

    1. NSURL的简介 URL是对可以从互联网上得到的资源的位置和访问方法的一种简介的表示,是互联网上标准资源的地址.URL可能包含远程服务器上的资源位置,本地磁盘上的文件的路径,甚至任意一段编码的数 ...

  10. 三维偏序-二维LIS

    Another Longest Increasing Subsequence Problem 有两种思路. 思路一: 考虑到如果只有一维,那么可以用f[s]表示长度为s时,最后一个数是多少,把这个想法 ...