ScrollView卷轴视图是指当拥有很多内容,一屏显示不完时,需要通过滚动跳来显示的视图.的使用:
<?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"/> </LinearLayout> </ScrollView>
package com.Aina.Android; 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; public class Test_ScrollView extends Activity { /** Called when the activity is first created. */ private LinearLayout mLayout; private ScrollView sView; 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); // 创建一个ScrollView对象 sView = (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 b = (Button) this.getCurrentFocus(); int count = mLayout.getChildCount(); Button bm = (Button) mLayout.getChildAt(count-1); if(keyCode==KeyEvent.KEYCODE_DPAD_UP && b.getId()==R.id.Button){ bm.requestFocus(); return true; }else if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN && b.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 tView = new TextView(Test_ScrollView.this);//定义一个TextView tView.setText("TextView" + index);//设置TextView的文本信息 //设置线性布局的属性 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); mLayout.addView(tView, params);//添加一个TextView控件 Button button = new Button(Test_ScrollView.this);//定义一个Button button.setText("Button" + index);//设置Button的文本信息 button.setId(index++); mLayout.addView(button, params);//添加一个Button控件 mHandler.post(mScrollToButton);//传递一个消息进行滚动 } }; private Runnable mScrollToButton = new Runnable() { @Override public void run() { int off = mLayout.getMeasuredHeight() - sView.getHeight(); if (off > 0) { sView.scrollTo(0, off);//改变滚动条的位置 } } }; }