Test_ScrollView

package com.ScrollViewTest;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
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.WRAP_CONTENT,
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() {
Log.d("liuwei", "mLayout.getMeasuredHeight() == "+mLayout.getMeasuredHeight());
Log.d("liuwei", "mLayout.getHeight() == "+mLayout.getHeight());

int off = mLayout.getMeasuredHeight() - sView.getHeight();
if (off > 0) {
sView.scrollTo(100, off);//改变滚动条的位置
}
}

};


}


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/TestView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TestView0" />
<ScrollView
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="wrap_content"
android:layout_height="wrap_content"
android:text="TestView0" />
<Button
android:id="@+id/Button"
android:text="Button0"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
</ScrollView>
</LinearLayout>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值