Android 学习笔记(7)——ScrollView(竖直滚动条)/HorizontalScrollView(水平滚动条)

作者:夏至 欢迎转载,也请保留这段申明,谢谢

1. ScrollView(竖直滚动条)

有没有发现,我们以前的学习都是用在一个手机屏幕框里的,没有上下滑动的?如果我们增加内容好像会被覆盖?没错,这次我们就来解决这个问题,让你像浏览网页一样,刷刷刷。。。。

这里写图片描述

当然,我们还要增加两个按键,一个返回顶部,一个跳到底部。这样是不是就像网页一样了。这里的布局,我们要说一下,因为linearlayout是包裹在scrollview里面的。这点要注意一下。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/scrollView">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <Button
            android:id="@+id/bottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="24sp"
            android:text="跳到底部"
            />
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="实现翻滚效果"
            android:textSize="24sp"
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:src="@drawable/image1"
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@drawable/image2"
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@drawable/shaorui"
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@drawable/start"
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@drawable/stop"
            />
        <Button
            android:id="@+id/top"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="24sp"
            android:text="回到顶部"
            />
    </LinearLayout>
</ScrollView>

如果用eclipse的话,可以新建一个xml文件,让它是scrollview即可,如果是studio的话,就老老实实的写吧。

好,接下来就是写主活动的程序了。这里的scrollview有连个方法可用。
我们可以直接利用ScrollView给我们提供的:fullScroll()方法:

  • scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部
  • scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private ScrollView scrollView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linearlayout);
        Button top = (Button) findViewById(R.id.top);
        Button bottom = (Button) findViewById(R.id.bottom);
        scrollView = (ScrollView) findViewById(R.id.scrollView);
        top.setOnClickListener(this);
        bottom.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.top:
                scrollView.fullScroll(ScrollView.FOCUS_UP);
                break;
            case R.id.bottom:
                scrollView.fullScroll(ScrollView.FOCUS_DOWN);
                break;
        }
    }

效果如图:
这里写图片描述

2. HorizontalScrollView(水平滚动条)

这里再扩充一下水平方向的。HorizontalScrollView,再把linearlayout 的方向改成水平,其他的都不变.

<HorizontalScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/scrollView">
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
     .....

当然了,MainActivity那里我们也要修改一下。就是把ScrollView 全部替换 HorizontalScrollView 即可:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private HorizontalScrollView horizontalScrollView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linearlayout);
        Button top = (Button) findViewById(R.id.top);
        Button bottom = (Button) findViewById(R.id.bottom);
        horizontalScrollView = (HorizontalScrollView) findViewById(R.id.scrollView);
        top.setOnClickListener(this);
        bottom.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.top:
                horizontalScrollView.fullScroll(HorizontalScrollView.FOCUS_UP);
                break;
            case R.id.bottom:
                horizontalScrollView.fullScroll(HorizontalScrollView.FOCUS_DOWN);
                break;
        }
    }

效果如图:
这里写图片描述

当然,效果也是丑得不要不要的,自行修改布局把。

如有错误,欢迎指出,如果喜欢,欢迎收藏!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值