ScrollView实现滚动效果

如果长文本的内容超过一屏幕 则只能显示一屏幕的内容

设置ScrollView 通过滚动浏览下面的内容

若将标签更改为<HorizontalScrollView></HorizontalScrollView>则为水平滚动效果
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.lenovo.scrollview.MainActivity">

    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none"><!--不显示右侧滚动条 -->

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/content"
            />

    </ScrollView>

</android.support.constraint.ConstraintLayout>

MainActivity文件:

package com.example.lenovo.scrollview;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TextView;

public class MainActivity extends Activity  {

    private TextView tv;
    private ScrollView scrollView;

    @SuppressLint("ClickableViewAccessibility")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv=findViewById(R.id.content);
        tv.setText(getResources().getString(R.string.content));

        scrollView=findViewById(R.id.scroll);
        //设置监听器
        scrollView.setOnTouchListener(new  View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                //对motionEvent的参数作判断
                switch (motionEvent.getAction()){
                    case MotionEvent.ACTION_UP:
                    {
                        break;
                    }
                    case MotionEvent.ACTION_DOWN:
                    {
                        break;
                    }
                    case MotionEvent.ACTION_MOVE:{
                        /*
                        * (1)getScrollY()--滚动条滑动的距离,从0开始计算
                        * (2)getMeasuredHeight()--全长
                        * (3)getHeight()--一屏幕的高度
                        * */
                        //顶部状态
                        if(scrollView.getScrollY()<=0){
                            Log.i("Main","滑动到顶部");
                        }
                        //底部状态
                        if(scrollView.getChildAt(0).getMeasuredHeight()<=scrollView.getHeight()+scrollView.getScrollY()){
                            Log.i("Main","滑动到底部");
                            tv.append(getResources().getString(R.string.content));//滑动到底部时再次追加本篇文字
                        }

                        break;
                    }

                }
                return false;
            }
        });
    }

}


猜你喜欢

转载自blog.csdn.net/xushunag/article/details/79031371