您的位置:首页 > 移动开发 > Android开发

Android中使用HorizontalScrollView横向滑动布局

2015-12-05 13:52 417 查看
在Android中,ListView通常用来实现纵向滚动的列表,而HorizontalScrollView则可以实现横向滚动的列表项。

引入HorizontalScrollView控件很简单,例如在一个LinearLayout中:

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

<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
</HorizontalScrollView>

</LinearLayout>


这时我们没有添加任何子控件,因此IDE提示我们“This HorizontalScrollView view is useless (no children, no background, no id, no style)

作为示例,我们尝试在这个HorizontalScrollView中添加若干个按钮:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.viewholdertest.MainActivity" >

<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"/>

......(余下的省略)

</HorizontalScrollView>

</LinearLayout>


这时IDE会提示我们:“A scroll view can have only one child”。

原来,在HorizontalScrollView中,只可存在一个直接的子View。因此正确的用法是使用一个如LinearLayout这样的控件,将多个子View放入其中,改好的布局文件是这样的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.viewholdertest.MainActivity" >

<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello" />

......(余下的省略)
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>


注意HorizontalScrollView中LinearLayout的witdh属性应为”wrap_content”。

现在运行APP,便可以通过横向滑动,将多余的按钮显示出来了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: