天天看点

【14】Android UI控件 - ScrollView简介相关属性及方法示例效果

简介

ScrollView 即竖直滚动条;还有一个HorizontalScrollView,水平滚动条。它继承自 FrameLayout ,因而我更愿意把它当成一个特殊的容器,其特殊性还表现在只能在 ScrollView 中放置一个子元素。

相关属性及方法

滚动位置

boolean fullScroll (int direction)

此方法将视图滚动到顶部或底部

FOCUS_UP

to go the top of the view or

FOCUS_DOWN

to go the bottom

void scrollTo (int x, int y)

设置视图的滚动位置。

设置滚动的滑块图片

android:scrollbarThumbVertical

垂直方向滑块

android:scrollbarThumbHorizontal

水平方向滑块

隐藏滑块

android:scrollbars="none"

Java代码:scrollview.setVerticalScrollBarEnabled(false)

滚动条属性

设置水平滚动条的drawable(如颜色):android:scrollbarThumbHorizontal

设置垂直滚动条的drawable(如颜色):android:scrollbarThumbVertical

设置水平滚动条背景(轨迹)的色drawable(如颜色):android:scrollbarTrackHorizontal

设定滚动条宽度:android:scrollbarSize

更多属性请参考

android scrollview 属性    ScrollView自动布局技巧    官方API

示例

activity_scrollview.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/Scr_View"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Scrollview_Activity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="20dp">

        <Button
            android:id="@+id/scr_B2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="下油锅"/>

        <Button
            android:id="@+id/scr_B3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="夜行服"/>

        <Button
            android:id="@+id/scr_B4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="隐身斗篷"/>


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="是男人就下100层"
            android:textSize="50dp"
            android:gravity="center"/>

        <View
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:background="@drawable/number"
            android:layout_gravity="center"/>

        <Button
            android:id="@+id/scr_B1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="上刀山" />

     </LinearLayout>
</ScrollView>
           

activity_scrollview.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/Scr_View"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Scrollview_Activity"
    android:scrollbarThumbVertical="@drawable/scr_png">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="20dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="是男人就下100层"
            android:textSize="50dp"
            android:gravity="center"/>

        <View
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:background="@drawable/number"
            android:layout_gravity="center"/>

    </LinearLayout>
</ScrollView>
           

Scrollview_Activity.java

package com.example.mytest_button;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ScrollView;


public class Scrollview_Activity extends AppCompatActivity {

    private ScrollView Scr_View;
    private Button Scr_Onclick_totop;
    private Button Scr_Onclick_toboton;
    private Button Scr_Onclick_change_clothes;
    private Button Scr_Onclick_hide;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_scrollview);

        Scr_Init();
        Scr_Onclick();
    }


    private void Scr_Init(){
        Scr_View = findViewById(R.id.Scr_View);
        Scr_Onclick_totop = findViewById(R.id.scr_B1);
        Scr_Onclick_toboton = findViewById((R.id.scr_B2));
        Scr_Onclick_change_clothes = findViewById(R.id.scr_B3);
        Scr_Onclick_hide = findViewById(R.id.scr_B4);
    }

    private void  Scr_Onclick(){
        //到顶部
        Scr_Onclick_totop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Scr_View.scrollTo(0,0);
            }
        });

        //到底部
        Scr_Onclick_toboton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Scr_View.fullScroll(ScrollView.FOCUS_DOWN);
            }
        });

        //设置滚动条图片
        Scr_Onclick_change_clothes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                setContentView(R.layout.layout_scr1);
            }
        });

        //透明
        Scr_Onclick_hide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Scr_View.setVerticalScrollBarEnabled(false);
            }
        });

    }

}
           

效果

【14】Android UI控件 - ScrollView简介相关属性及方法示例效果