activity_main.xml
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_height="match_parent"
android:layout_width="match_parent">
<!-- 條狀顯示,可加入文字-->
<android.support.v4.view.PagerTabStrip
android:id="@+id/pagertab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
></android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/linerlayout_Continer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp">
</LinearLayout>
</RelativeLayout>
viewpager1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/air"/>
</LinearLayout>
viewpager2
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是第二個界面"/>
</LinearLayout>
viewpager3
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是第三個界面"/>
</LinearLayout>
class文件 MyPagerAdapter
package com.example.administrator.myviewpager.adapter;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import com.example.administrator.myviewpager.R;
import java.util.List;
/**
* Created by Administrator on 2015/9/1.
*/
public class MyPagerAdapter extends PagerAdapter{
private List<View> views;
private String[] titles={"頁面一","頁面二","頁面三"};
@Override
public CharSequence getPageTitle(int position) {
return titles[position%titles.length];
}
public MyPagerAdapter( List<View> views){
this.views=views;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final View view=views.get(position%views.size());
if(view.getParent()!=null){
container.removeView(view);
}
container.addView(view);
if(position%views.size()==2){
Button button= (Button) view.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(view.getContext(),"點擊了這個按鈕",Toast.LENGTH_SHORT).show();
}
});
}
return views.get(position%views.size());
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
}
MainActivity
package com.example.administrator.myviewpager;
import android.graphics.Color;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.administrator.myviewpager.adapter.MyPagerAdapter;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ViewPager mViewPager;
private List<View> views;
private LayoutInflater mInflater;
private LinearLayout mLinearLayoutContiner;
private List<ImageView> mPoints;
private PagerTabStrip mPagerTab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViewPager();
}
private void initViewPager() {
mViewPager= (ViewPager) findViewById(R.id.viewpager);
mLinearLayoutContiner= (LinearLayout) findViewById(R.id.linerlayout_Continer);
mPagerTab= (PagerTabStrip) findViewById(R.id.pagertab);
mPagerTab.setBackgroundColor(Color.LTGRAY);
mPagerTab.setTabIndicatorColor(Color.RED);
mPagerTab.setTextColor(Color.GREEN);
mPagerTab.setDrawFullUnderline(true);
views=new ArrayList<>();
mInflater=getLayoutInflater();
View view1=mInflater.inflate(R.layout.viewpager1,null);
View view2=mInflater.inflate(R.layout.viewpager2,null);
View view3=mInflater.inflate(R.layout.viewpager3,null);
views.add(view1);
views.add(view2);
views.add(view3);
mPoints=new ArrayList<>();
for (int i = 0; i <3 ; i++) {
ImageView iv=new ImageView(this);
iv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
iv.setImageResource(R.mipmap.backgroud_gray);
mPoints.add(iv);
mLinearLayoutContiner.addView(iv);
}
mPoints.get(0).setImageResource(R.mipmap.background_green);
MyPagerAdapter myPagerAdapter=new MyPagerAdapter(views);
mViewPager.setAdapter(myPagerAdapter);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
for(ImageView iv:mPoints){
iv.setImageResource(R.mipmap.backgroud_gray);
}
mPoints.get(position%views.size()).setImageResource(R.mipmap.background_green);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
mViewPager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2%views.size());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
![這裏寫圖片描述](http:
![這裏寫圖片描述](http:
![這裏寫圖片描述](http: