Android ScrollView

分享到:

ScrollView是一种可以使屏幕在垂直方向滑动的控件,当内容比较多在一屏上无法完全显示时使用ScrollView就非常适合了,通过ScrollView能使隐藏在屏幕下方的内容通过滑动显示出来。

使用ScrollView有几点注意事项:
1. ScrollView只能在垂直方向滚动
2. ScrollView只能包含一个一级子控件(通常是LinearLayout),其它需要滚动查看的控件必须放在这个LinearLayout内部。
3. 不要随便在ScrollView内部嵌套ListView,因为这两个控件都有垂直滚动条直接嵌套的效果并不是大家想像的样子,处理起来比复杂(以后会有文档专门针对这种情况进行说明)。

ScrollView常用属性:

android:scrollbars 设置滚动条显示。none(隐藏),horizontal(水平),vertical(垂直)
android:scrollbarFadeDuration 设置滚动条淡出效果(从有到慢慢的变淡直至消失)时间,以毫秒为单位
android:scrollbarSize 设置滚动条的宽度
android:scrollbarStyle 设置滚动条的风格和位置。设置值:insideOverlay、insideInset、outsideOverlay、outsideInset
android:scrollbarThumbHorizontal 设置水平滚动条的drawable
android:scrollbarThumbVertical 设置垂直滚动条的drawable
android:scrollbarTrackHorizontal 设置水平滚动条背景(轨迹)的色drawable
android:soundEffectsEnabled 设置点击或触摸时是否有声音效果

通过一个例子说明ScrollView的使用方法,本例非常简单在界面放一个ScrollVIew里面包含8个Button控件,每个Button的高度是100dp,布局XML代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:id="@+id/LinearLayout1"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical" >

	<ScrollView
          android:id="@+id/scrollView1"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" >
		<LinearLayout
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical" >
  
  		<Button
          android:id="@+id/button1"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:minHeight="100dp"
          android:text="Button1" />
  
		<Button
          android:id="@+id/button2"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:minHeight="100dp"
          android:text="Button2" />
  
		<Button
          android:id="@+id/button3"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:minHeight="100dp"
          android:text="Button3" />
  
		<Button
          android:id="@+id/button4"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:minHeight="100dp"
          android:text="Button4" />
  
		<Button
          android:id="@+id/button5"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:minHeight="100dp"
          android:text="Button5" />
  
		<Button
          android:id="@+id/button6"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:minHeight="100dp"
          android:text="Button6" />
  
		<Button
          android:id="@+id/button7"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:minHeight="100dp"
          android:text="Button7" />
  
		<Button
          android:id="@+id/button8"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:minHeight="100dp"
          android:text="Button8" />
  
		</LinearLayout>
	</ScrollView>
  
</LinearLayout>

控件结构图:

本例不含java源码只是一个单纯的XML布局,只需把上面的xml代码复制过去就可以,运行之后就能看到效果了。如果有兴趣也可以把本例中的Button全部删除掉,换成一个TextView然后让TextView显示大篇幅的文字内容(超过一屏就可以)也能显示出不错的效果,现在很多小说APP的详情页面就是这么做的(使用HTML5的除外)。

昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例