使用ViewPager这个类可以轻松实现多个页面的滑动功能,而且相对viewgroup来讲要简单容易一些,在此之前我们需要导入 android-support-v4.jar这个jar包,是google提供的扩展包,位置路径为 android-sdk-windows\extras\android\support\v4\ android-support-v4.jar,如果没有找到,需要打开Android SDK Manager在Extras中进行下载,最后记得引入工程中并build path。
在本示例中,我参考了几个demo整理出来的viewpager的最基本用法,制作了一个类似新闻导航功能的界面,每个页面的下方有对应的项目符号,当页面进行切换的时候项目符号也随之变化,下面是实现后的图片:
java代码:
主页面的布局:
<?xml version= "1.0" encoding= "utf-8" ?> <FrameLayout xmlns:android= "" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:orientation= "vertical" > <LinearLayout android:id= "@+id/linearLayout1" android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:orientation= "vertical" > <include layout= "@layout/page_header" /> <android.support.v4.view.ViewPager android:id= "@+id/guidePages" android:layout_width= "fill_parent" android:layout_height= "wrap_content" /> </LinearLayout> <LinearLayout android:id= "@+id/linearLayout2" android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:orientation= "vertical" > <RelativeLayout android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:orientation= "vertical" > <LinearLayout android:id= "@+id/viewGroup" android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:layout_alignParentBottom= "true" android:layout_marginBottom= "40dp" android:gravity= "center_horizontal" android:orientation= "horizontal" > </LinearLayout> </RelativeLayout> </LinearLayout> </FrameLayout> |
标题栏的布局:
<?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "" android:layout_width= "match_parent" android:layout_height= "wrap_content" android:orientation= "horizontal" android:background= "@drawable/title" android:gravity= "center_vertical" > <Button android:id= "@+id/btn_left" android:layout_width= "80dp" android:layout_height= "30dp" android:text= "返回" android:textSize= "15sp" android:textColor= "@android:color/white" android:background= "@drawable/header_btn" android:layout_margin= "5dp" /> <TextView android:id= "@+id/tvTitle" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "奥运快报" android:textSize= "18sp" android:layout_weight= "1" android:ellipsize= "end" android:gravity= "center_horizontal" /> <Button android:id= "@+id/btn_right" android:layout_width= "80dp" android:layout_height= "30dp" android:text= "首页" android:textSize= "15sp" android:textColor= "@android:color/white" android:background= "@drawable/header_btn" android:layout_margin= "5dp" /> </LinearLayout> |
子页面的布局:
<?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "" android:layout_width= "match_parent" android:layout_height= "match_parent" android:orientation= "vertical" android:background= "@android:color/white" > <LinearLayout android:layout_width= "fill_parent" android:layout_height= "wrap_content" > <ImageView android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:src= "@drawable/pic_lindan" /> </LinearLayout> <LinearLayout android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:layout_marginTop= "10dp" android:layout_marginBottom= "10dp" android:layout_marginLeft= "30dp" android:layout_marginRight= "30dp" android:background= "@drawable/divider_horizontal_line" > </LinearLayout> <LinearLayout android:layout_width= "fill_parent" android:layout_height= "fill_parent" > <TextView android:layout_width= "fill_parent" android:layout_height= "wrap_content" android:layout_marginRight= "30dp" android:layout_marginLeft= "30dp" android:textColor= "@android:color/black" android:text= "@string/string_lindan" /> </LinearLayout> </LinearLayout> |