简介
ScrollView 即竖直滚动条;还有一个HorizontalScrollView,水平滚动条。它继承自 FrameLayout ,因而我更愿意把它当成一个特殊的容器,其特殊性还表现在只能在 ScrollView 中放置一个子元素。
相关属性及方法
滚动位置
boolean fullScroll (int direction)
此方法将视图滚动到顶部或底部
to go the top of the view or
FOCUS_UP
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);
}
});
}
}
效果
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLxMTN2MjN1MTM0IDOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.gif)