注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无线时代辐射无穷

抓紧生宝宝,小心辐射

 
 
 

日志

 
 

android ScrollView  

2011-06-23 18:49:15|  分类: android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ScrollView01.java:

复制到剪贴板  Java代码
  1. package com.ScrollView01;   
  2.   
  3. import android.app.Activity;   
  4. import android.os.Bundle;   
  5. import android.os.Handler;   
  6. import android.view.KeyEvent;   
  7. import android.view.View;   
  8. import android.widget.Button;   
  9. import android.widget.LinearLayout;   
  10. import android.widget.ScrollView;   
  11. import android.widget.TextView;   
  12.   
  13. public class ScrollView01 extends Activity {   
  14.  private LinearLayout mLayout;   
  15.  private ScrollView mScrollView;   
  16.  private final Handler mHandler=new Handler();   
  17.     /** Called when the activity is first created. */  
  18.     @Override  
  19.     public void onCreate(Bundle savedInstanceState) {   
  20.         super.onCreate(savedInstanceState);   
  21.         setContentView(R.layout.main);   
  22.            
  23.         //线性布局   
  24.         mLayout=(LinearLayout)findViewById(R.id.layout);   
  25.         mScrollView=(ScrollView)findViewById(R.id.ScrollView01);   
  26.            
  27.         Button button=(Button)findViewById(R.id.Button01);   
  28.            
  29.         button.setOnClickListener(mClickListener);   
  30.         //改变默认焦点切换   
  31.         button.setOnKeyListener(mAddButtonKeyListener);   
  32.     }   
  33.        
  34.     //当点击按钮时,增加一个TextView和Button   
  35.     private Button.OnClickListener mClickListener=new Button.OnClickListener()   
  36.     {   
  37.      private int mIndex=1;   
  38.      @Override  
  39.      public void onClick(View arg0)   
  40.      {   
  41.       TextView mTextView=new TextView(ScrollView01.this);   
  42.       mTextView.setText("Text View"+mIndex);   
  43.       LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(   
  44.         LinearLayout.LayoutParams.FILL_PARENT,   
  45.         LinearLayout.LayoutParams.WRAP_CONTENT   
  46.         );   
  47.       //增加一个TextView到线性布局中   
  48.       mLayout.addView(mTextView,p);   
  49.          
  50.       Button mButtonView=new Button(ScrollView01.this);   
  51.       mButtonView.setText("Button"+mIndex++);   
  52.       mLayout.addView(mButtonView,p);   
  53.       //改变默认焦点切换   
  54.       mButtonView.setOnKeyListener(mNewButtonKeyListener);   
  55.       //投递一个消息进行滚动   
  56.       mHandler.post(mScrollToBottom);   
  57.      }       
  58.     };   
  59.        
  60.   
  61.     //新建后滚动到最后   
  62.     private Runnable mScrollToBottom=new Runnable()   
  63.     {   
  64.      public void run()   
  65.      {   
  66.       int off=mLayout.getMeasuredHeight()-mScrollView.getHeight();   
  67.       if(off>0)   
  68.       {   
  69.        mScrollView.scrollTo(0, off);   
  70.       }   
  71.      }   
  72.     };   
  73.       
  74.   
  75.     //滚动到最后回到头   
  76.     private View.OnKeyListener mNewButtonKeyListener=new View.OnKeyListener()   
  77.     {    
  78.   @Override  
  79.   public boolean onKey(View v, int keyCode, KeyEvent event)    
  80.   {   
  81.    if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN&&   
  82.      v==mLayout.getChildAt(mLayout.getChildCount()-1))   
  83.    {   
  84.     findViewById(R.id.Button01).requestFocus();   
  85.     return true;   
  86.    }   
  87.    // TODO Auto-generated method stub   
  88.    return false;   
  89.   }   
  90.  };   
  91.       
  92.   
  93.      //滚动到头回到尾   
  94.     private View.OnKeyListener mAddButtonKeyListener=new Button.OnKeyListener()   
  95.     {   
  96.      @Override  
  97.      public boolean onKey(View v,int keyCode,KeyEvent event)   
  98.      {   
  99.       View viewToFoucus=null;   
  100.       if(event.getAction()==KeyEvent.ACTION_DOWN)   
  101.       {   
  102.        int iCount=mLayout.getChildCount();   
  103.        switch(keyCode)   
  104.        {   
  105.        case KeyEvent.KEYCODE_DPAD_UP:   
  106.         if(iCount>0)   
  107.         {   
  108.          viewToFoucus=mLayout.getChildAt(iCount-1);   
  109.         }   
  110.         break;   
  111.        case KeyEvent.KEYCODE_DPAD_DOWN:   
  112.         if(iCount<mLayout.getWeightSum())   
  113.         {   
  114.          viewToFoucus=mLayout.getChildAt(iCount+1);   
  115.         }   
  116.         break;   
  117.         default:   
  118.          break;   
  119.        }   
  120.       }   
  121.       if(viewToFoucus!=null)   
  122.       {   
  123.        viewToFoucus.requestFocus();   
  124.        return true;   
  125.       }   
  126.       else  
  127.       {   
  128.        return false;   
  129.       }   
  130.      }   
  131.     };   
  132. }   

main.xml:

复制到剪贴板  XML/HTML代码
  1. <?xml version="1.0" encoding="utf-8"?>      
  2. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"     
  3.  android:id="@+id/ScrollView01"     
  4.  android:layout_width="fill_parent"     
  5.     android:layout_height="wrap_content"     
  6.     android:scrollbars="none">      
  7. <LinearLayout       
  8.  android:id="@+id/layout"     
  9.     android:orientation="vertical"     
  10.     android:layout_width="fill_parent"     
  11.     android:layout_height="wrap_content"     
  12.     >      
  13. <TextView        
  14.     android:layout_width="fill_parent"       
  15.     android:layout_height="wrap_content"       
  16.     android:text="TextView0"     
  17.     />      
  18. <Button      
  19.  android:id="@+id/Button01"     
  20.  android:layout_width="fill_parent"       
  21.     android:layout_height="wrap_content"       
  22.     android:text="Button"/>      
  23. </LinearLayout>      
  24. </ScrollView>      
  评论这张
 
阅读(810)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017