horizontalscrollview 应用举例

6 篇文章 0 订阅

main.java

复制代码
package com.demo.scrollview;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

public class main extends Activity {
    /** Called when the activity is first created. */
    private LinearLayout mLayout;
    private HorizontalScrollView sView;
    private final Handler mHandler = new Handler();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.horizontalscroll);
        // 创建一个线性布局
        mLayout = (LinearLayout) this.findViewById(R.id.LinearLayout);
        // 创建一个ScrollView对象
        sView = (HorizontalScrollView) this.findViewById(R.id.ScrollView);
        Button mBtn = (Button) this.findViewById(R.id.Button);
        mBtn.setOnClickListener(mClickListener);// 添加点击事件监听
    }

    // Button事件监听,当点击第一个按钮时增加一个button和一个textview
    private Button.OnClickListener mClickListener = new Button.OnClickListener() {

        @Override
        public void onClick(View v) {
            TextView tView = new TextView(main.this);// 定义一个TextView
            tView.setText("ScrollView也是一个Layout布局,可以让它内部的数据显示不下的时候出现垂直滚动条,要注意的是不能在ScrollView中放多个组件");// 设置TextView的文本信息

            // 设置线性布局的属性
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.FILL_PARENT
                    
);
            mLayout.addView(tView, params);// 添加一个TextView控件
            mHandler.post(mScrollToButton);//传递一个消息进行滚动
        }

    };
    private Runnable mScrollToButton = new Runnable() {

        @Override
        public void run() {
            int off = mLayout.getMeasuredWidth() - sView.getWidth();
            if (off > 0) {
                sView.scrollTo( off,0);// 改变滚动条的位置
            }
        }

    };

}
复制代码

HorizontalScrollView.xml

复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main" android:orientation="vertical"
    android:layout_width="fill_parent" android:layout_height="wrap_content">

    <Button android:id="@+id/Button" android:text="Button0"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>

    <HorizontalScrollView android:id="@+id/ScrollView"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" android:scrollbars="horizontal" >
        <LinearLayout android:id="@+id/LinearLayout"
            android:orientation="horizontal" android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView android:id="@+id/TestView" android:layout_width="wrap_content"
                android:layout_height="fill_parent" android:text="ScrollView也是一个Layout布局,可以让它内部的数据显示不下的时候出现垂直滚动条,要注意的是不能在ScrollView中放多个组件" />
        </LinearLayout>
    </HorizontalScrollView>
</LinearLayout>   
复制代码


main.java稍作修改可以使用如下两个xml

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:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/TestView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="TestView0" />

        <Button
            android:id="@+id/Button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Button0" >
        </Button>
    </LinearLayout>

</ScrollView>
复制代码

mian1.xml

复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <Button
        android:id="@+id/Button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Button0" >
    </Button>

    <ScrollView
        android:id="@+id/ScrollView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:scrollbars="vertical" >

        <LinearLayout
            android:id="@+id/LinearLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/TestView"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="TestView0" />
        </LinearLayout>
    </ScrollView>

</LinearLayout>
复制代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值