《程序运行图》
(http://img.blog.csdn.net/20170810193536397?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzE3Mzg3MzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(一)布局设计
//主布局设计
//视图,是各个功能界面视图的容器
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
//下划线
<TextView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#ffd7d7d8"/>
//底部功能栏
<include layout="@layout/bottom_bar"/>
//子布局设计,新建五个子布局
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="学习"
android:textSize="30sp"/>
(二)设计继承 PagerAdapter 的适配器 ViewPagerAdapter
public class ViewPagerAdapter extends PagerAdapter {
//建立容纳View的List集合,用来初始化适配器时候,初始化List
private List<View> viewList;
//构造函数
public ViewPagerAdapter(List<View> viewList) {
this.viewList = viewList;
}
//返回List容量大小,此方法必须重写
@Override
public int getCount() {
return viewList.size();
}
//此方法必须重写
@Override
public boolean isViewFromObject(View view, Object object) {
//重点语句
return (view == object);
}
//滑动导致,现有页面消除在界面上
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// container.removeView(view),container容器移除View .viewList.get(position)获取当前页面的View
View view = viewList.get(position);
container.removeView(view);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
//container.addView(view),container容器显示View.viewList.get(position)获取当前页面的View
View view = viewList.get(position);
container.addView(view);
return view;
}
}
(三)主Activity设计
//定义变量
//主视图,容纳View视图
private ViewPager viewPager;
//五个功能模块视图
private View news_view, weather_view, map_view, study_view, music_view;
private ViewPagerAdapter adapter;
private List<View> viewList = new ArrayList<View>();
在onCreate()方法中新建 initViews()方法,初始化五个视图
private void initViews() {
LayoutInflater inflater = LayoutInflater.from(this);
//五个视图
news_view = inflater.inflate(R.layout.news_main, null);
weather_view = inflater.inflate(R.layout.weather_main, null);
map_view = inflater.inflate(R.layout.map_main, null);
study_view = inflater.inflate(R.layout.study_main, null);
music_view = inflater.inflate(R.layout.music_main, null);
//添加到List集合中
viewList.add(news_view);
viewList.add(weather_view);
viewList.add(map_view);
viewList.add(study_view);
viewList.add(music_view);
//适配器初始化,参数是包含五个视图的List集合
adapter = new ViewPagerAdapter(viewList);
//主视图设置适配器
viewPager.setAdapter(adapter);
}
底部按钮设计
public void onClick(View view) {
switch (view.getId()){
case R.id.news_function:
//设置当前的View,根据List初始化顺序,可知道顺序为 news、weather、map、study、music
//根据底部按钮设置相应的页面0、1、2、3、4
viewPager.setCurrentItem(0);
break;
case R.id.weather_function:
viewPager.setCurrentItem(1);
break;
case R.id.map_function:
viewPager.setCurrentItem(2);
break;
case R.id.study_function:
viewPager.setCurrentItem(3);
break;
case R.id.music_function:
viewPager.setCurrentItem(4);
break;
}
}