Android设计中,有时需要实现一组页面进行滑动,例如在一个Activity视图中,顶部是一个导航栏,底部是菜单栏 ,中间是3个可以滑动的区域,其功能跟android系统的Launcher的workspace相似 。
程序运行界面效果:
以下为核心代码:
布局文件: res/layout/main.xml:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout
xmlns:Android="http://schemas.android.com/apk/res/android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical">
<RelativeLayout
xmlns:Android="http://schemas.android.com/apk/res/android"
Android:id="@+id/view_top"
Android:orientation="horizontal"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true"
Android:gravity="center">
<TextView
Android:text="head"
Android:textSize="15pt"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" />
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/btn_star_1"
Android:id="@+id/imageView1"
Android:layout_alignParentTop="true"
Android:layout_alignParentRight="true"></ImageView>
<TextView
Android:layout_width="wrap_content"
Android:id="@+id/textView_header"
Android:text="center page"
Android:layout_height="wrap_content"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:layout_centerVertical="true"
Android:layout_alignParentLeft="true"
Android:layout_marginLeft="78dp"></TextView>
</RelativeLayout>
<RelativeLayout
xmlns:Android="http://schemas.android.com/apk/res/android"
Android:id="@+id/view_bottom"
Android:orientation="horizontal"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:gravity="center">
<TextView
Android:text="footer"
Android:textSize="15pt"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" />
</RelativeLayout>
<com.xxx.ScrollLayout
xmlns:Android="http://schemas.android.com/apk/res/android"
Android:id="@+id/ScrollLayoutID"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical"
Android:layout_above="@id/view_bottom"
Android:layout_below="@id/view_top">
<LinearLayout
Android:background="#ffffffff"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Left" />
</LinearLayout>
<LinearLayout
Android:background="#ffffffff"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Center" />
</LinearLayout>
<LinearLayout
Android:background="#ffffffff"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Right" />
</LinearLayout>
</com.xxx.ScrollLayout>
</RelativeLayout>
自定义控件 ScrollLayout.java :