//--------------主页面-------------------------------

package com.bw.test;

import java.util.ArrayList;
import java.util.List;

import com.bw.test.adapter.MyViewPagerAdapter;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

private ViewPager vp;
    private List<View> views=new ArrayList<View>();
    private TextView tv_textview1;
    private TextView tv_textview2;
    private TextView tv_textview3;
    private TextView tv_textview4;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //找到button按钮控件
        tv_textview1 = (TextView) findViewById(R.id.tv_textview1);
        tv_textview2 = (TextView) findViewById(R.id.tv_textview2);
        tv_textview3 = (TextView) findViewById(R.id.tv_textview3);
        tv_textview4 = (TextView) findViewById(R.id.tv_textview4);
        //找到ViewPager控件
        vp = (ViewPager) findViewById(R.id.vp);
        //设置ViewPager的适配器
        MyViewPagerAdapter adapter=new MyViewPagerAdapter(views, this);
        vp.setAdapter(adapter);
        //初始化view
        initView();
        //设置ViewPager滑动监听
        vp.setOnPageChangeListener(new OnPageChangeListener() {
            
            @Override
            public void onPageSelected(int arg0) {
                switch (arg0) {
                case 0:
                    //设置textview的背景颜色
                    tv_textview1.setBackgroundColor(Color.RED);                    
                    tv_textview2.setBackgroundColor(Color.WHITE);
                    tv_textview3.setBackgroundColor(Color.WHITE);
                    tv_textview4.setBackgroundColor(Color.WHITE);
                    break;
                case 1:
                    tv_textview1.setBackgroundColor(Color.WHITE);
                    tv_textview2.setBackgroundColor(Color.RED);    
                    tv_textview3.setBackgroundColor(Color.WHITE);
                    tv_textview4.setBackgroundColor(Color.WHITE);
                    break;
                case 2:
                    tv_textview1.setBackgroundColor(Color.WHITE);
                    tv_textview2.setBackgroundColor(Color.WHITE);
                    tv_textview3.setBackgroundColor(Color.RED);    
                    tv_textview4.setBackgroundColor(Color.WHITE);
                    break;
                case 3:
                    tv_textview1.setBackgroundColor(Color.WHITE);
                    tv_textview2.setBackgroundColor(Color.WHITE);
                    tv_textview3.setBackgroundColor(Color.WHITE);
                    tv_textview4.setBackgroundColor(Color.RED);    
                    break;

default:
                    break;
                }
                
            }
            
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                
                
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0) {
                
                
            }
        });
        //设置监听
        tv_textview1.setOnClickListener(this);
        tv_textview2.setOnClickListener(this);
        tv_textview3.setOnClickListener(this);
        tv_textview4.setOnClickListener(this);
        //设置默认页面
        tv_textview1.setBackgroundColor(Color.RED);                            
        vp.setCurrentItem(0);
    }

//初始化view
    private void initView() {
        //创建view布局
        View view1=View.inflate(this, R.layout.view1, null);
        View view2=View.inflate(this, R.layout.view2, null);
        View view3=View.inflate(this, R.layout.view3, null);
        View view4=View.inflate(this, R.layout.view4, null);
        //把view布局添加到集合
        views.add(view1);
        views.add(view2);
        views.add(view3);
        views.add(view4);

}

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

@Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.tv_textview1:
            vp.setCurrentItem(0);
            break;
        case R.id.tv_textview2:
            vp.setCurrentItem(1);
            break;
        case R.id.tv_textview3:
            vp.setCurrentItem(2);
            break;
        case R.id.tv_textview4:
            vp.setCurrentItem(3);
            break;

default:
            break;
        }
        
    }
    
}

//=============主布局文件    main.xml===========================

<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"
     >

<android.support.v4.view.ViewPager
       android:layout_width="fill_parent"
       android:layout_height="0dp"
       android:layout_weight="1"
       android:id="@+id/vp"></android.support.v4.view.ViewPager>
   <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
       <TextView
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="40dp"
           android:text="首页"
           android:gravity="center"
           android:id="@+id/tv_textview1"/>
       <TextView
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="40dp"
           android:text="详情"
           android:gravity="center"
           android:id="@+id/tv_textview2"/>
       <TextView
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="40dp"
           android:text="购物车"
           android:gravity="center"
           android:id="@+id/tv_textview3"/>
       <TextView
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="40dp"
           android:text="我的"
           android:gravity="center"
           android:id="@+id/tv_textview4"/>
   </LinearLayout>

</LinearLayout>

//============创建一个MyViewPagerAdapter,继承PagerAdapter并实现里面的方法=========================

package com.bw.test.adapter;

import java.util.List;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

//创建一个MyViewPagerAdapter,继承PagerAdapter并实现里面的方法

public class MyViewPagerAdapter extends PagerAdapter{
    private List<View> views;
    private Context context;
    
    //有参构造
    public MyViewPagerAdapter(List<View> views, Context context) {
        super();
        this.views = views;
        this.context = context;
    }
    //获得长度
    @Override
    public int getCount() {
        
        return views.size();
    }

@Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        
        return arg0==arg1;
    }
    //展示的view
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        //获得展示的view
        View view=views.get(position);
        //添加到容器
        container.addView(view);
        //返回显示的view
        return view;
    }
    //销毁view
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        //从容器中移除view
        container.removeView((View) object);
    }

}

//============创建   view1.xml  布局文件 这里我只给了一个背景颜色==========================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ff00ff">
    
</LinearLayout>

//=======创建   view2 .xml 布局文件 这里我只给了一个背景颜色===========================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ffff00" >

</LinearLayout>

//=====创建  view3.XML 布局文件  这里我只给了一个背景颜色===================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#0000ff" >

</LinearLayout>

//=========创建  view4.XML 布局文件  这里我只给了一个背景颜色=================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#00ffff" >

</LinearLayout>

//=======完了,做完之后就是页面的切换========

ViewPager和View组合 实现页面的切换的更多相关文章

  1. ViewPager+Fragment实现页面的切换

    新知识,新摘要: 效果图:framgent导入包都是v4包下,谨慎导入错误! 首先设置viewPager布局: <?xml version="1.0" encoding=&q ...

  2. 转:Android ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式, 白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了 ...

  3. Android ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...

  4. Android——ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...

  5. Android开发之利用ViewPager实现页面的切换(仿微信、QQ)

    这里利用ViewPager实现页面的滑动,下面直接上代码: 1.首先写一个Activity,然后将要滑动的Fragment镶嵌到写好的Activity中. Activity的布局文件:activity ...

  6. ViewPager和View的事件响应规则

    案例背景: 当我们实现viewpager的自动切换界面操作的时候,如果需要增加点击图片viewpager停止自动切换,松开手指viewpager自动切换又继续执行的逻辑,正常思维下实现代码如下所示: ...

  7. VC/Wince 实现仿Win8 Metro风格界面2——页面滑动切换(附效果图)

    前几天开始写仿Win8 Metro界面文章,部分网友觉得不错,感谢各位的意见.本来今天一直在折腾Android VLC播放器,没时间写.不过明天休息,所以今天就抽时间先写一下. 言归正传,我们都知道W ...

  8. selenium多个标签页的切换(弹出新页面的切换)

    1_windows = driver.current_window_handle #定位当前页面句柄 all_handles = driver.window_handles #获取全部页面句柄 for ...

  9. 20ViewPager demo1,2:接收ViewPager展示View的使用

    Demo1 MainActivity .JAVA package com.qf.day20_viewpager_demo1; import java.util.ArrayList; import ja ...

随机推荐

  1. MySQL Replicationation进阶

    摘要 上一篇: MySQL Replication 基础  下一篇 MySQL Replication-MHA 一.主主复制 二.半同步复制 三.复制过滤器 四.总结 五.切分 待续 一.主主复制 M ...

  2. Linux中kettle自动化部署脚本

    自己写的一个自动化在Linux中部署kettle的脚本,包括一些遇到的问题在脚本中都有涉及. kettle是官网最新版本pdi-ce-6.1.0.1-196.zip 目前最新版本下载地址:https: ...

  3. createThread和_beginthreadex区别

    摘自:http://blog.csdn.net/morewindows/article/details/7421759 CreateThread()函数是Windows提供的API接口,在C/C++语 ...

  4. Excel教程(9) - 信息函数

    CELL   用途:返回某一引用区域的左上角单元格的格式.位置或 内容等信息,该函数主要用于保持与其它电子表格程序的兼容 性. 语法:CELL(info_type,reference) 参数:Info ...

  5. javascript动画效果之多物体缓冲运动

    这个是通过一个for循环控制的三个li标签,被鼠标触发则会有一个宽度增加和减少的事件 html和css同样写在一起方便察看,这里就是简单的布局,重点在js <!DOCTYPE html> ...

  6. 正则匹配 sql语句参数

    List<string> listcommand = new List<string>(); string sql = "update BMDMB set bmdmb ...

  7. 笔记整理--Linux_Socket

    揭开Socket编程的面纱 - 博客 - 伯乐在线 - Google Chrome (2013/9/22 19:28:24) 揭开Socket编程的面纱 2013/09/21 | 分类: IT技术 | ...

  8. VS2010 制作安装包,无法生成卸载快捷方式

    目前我出现了这个错误,原因是项目目录中包含了中文字符导致的,我改变了文件夹之后,就没问题了

  9. js 第一天

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  10. Tomcat目录下文件详解

    一.Tomcat背景   (转) 自从JSP发布之后,推出了各式各样的JSP引擎.Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供We ...