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

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. MaskEdit组件的EditText属性和Text属性

    MaskEdit组件主要是EditMask属性 是string属性. 掩码字符串EditMask属性分为3个部分,分别用分号隔开,形式是“XXXXX;X;X” 第一部分是掩码字符串的主要部分,它确定输 ...

  2. Digital Ocean VS. Linode对比评测

    美国攻城师Zach Schneider是linode vps资深用户,他最近却转向了Digital Ocean,原因是什么呢?来看这篇digitalocean linode对比评测的文章: 用了两年的 ...

  3. Java 散知识

    1.final关键字的用法: 1. final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的. 2. fianl关键字修饰一个引用类型变量时,该变量不能重新指向新的对象. 3. ...

  4. ASP.NET中的Excel操作(NPOI方式)

    代码准备: 一:实体准备 代码如下: /// <summary> /// 一个能添加到将要导出到指定行的实体类型规范 /// data:{int StartColIndex ? 0, in ...

  5. shell笔记-local、export用法

    local一般用于局部变量声明,多在在函数内部使用.    1.    Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止.    2.   ...

  6. GO对象和指针初始化

    转自http://www.cnblogs.com/tianyajuanke/p/5234205.html

  7. NSTimer 销毁问题 和 iOS中控制器的释放问题

    俗话说的好,前人栽树后人乘凉,最近看了很多博文,不少博文提到了NSTimer的销毁问题, 之前我都没怎么注意,现在对照着文章一一实践发现坑还真不少.下面是我读到的几篇博文分享给大家 @啸笑天的NSTi ...

  8. 找回XP中的搜索助理

    平台:GHOST版XP 问题:按下F3键后,打开的搜索界面没有搜索助理,比较难看.打开C:\WINDOWS\srchasst目录,发现该目录下空空如也,显然搜索助理文件已经被删除了. 解决: 1.准备 ...

  9. HDU 5795 A Simple Nim

    打表找SG函数规律. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> ...

  10. HDU 5352 MZL's City

    最小费用最大流,因为要控制字典序,网络流控制不好了...一直WA,所以用了费用流,时间早的费用大,时间晚的费用少. 构图: 建立一个超级源点和超级汇点.超级源点连向1操作,容量为K,费用为COST,然 ...