首先要写viewpager的控件 在布局中写
android.support.v4.view.ViewPager
然后就是找id
mainactivity类
package us.mifeng.viewp_fragment;
import java.util.ArrayList;
import java.util.List;
import us.mifeng.viewp_fragment.adapter.MyAdapter;
import us.mifeng.viewp_fragment.fragment.Fragment1;
import us.mifeng.viewp_fragment.fragment.Fragment2;
import us.mifeng.viewp_fragment.fragment.Fragment3;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends FragmentActivity implements OnClickListener {
private ViewPager vp;
private ImageView iv1,iv2,iv3;
private LinearLayout ll1,ll2,ll3;
private TextView tv1,tv2,tv3;
private List<Fragment> list = new ArrayList<Fragment>();
private MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager());
private Fragment1 fragment1;
private Fragment2 fragment2;
private Fragment3 fragment3;
private FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initList();
manager = getSupportFragmentManager();
fragment1 = new Fragment1();
FragmentTransaction ft = manager.beginTransaction();
ft.add(R.id.vp, fragment1);
ft.commit();
}
private void initList() {
list.add(new Fragment1());
list.add(new Fragment2());
list.add(new Fragment3());
myAdapter.setList(list);
vp.setAdapter(myAdapter);
}
private void initView() {
vp = (ViewPager) findViewById(R.id.vp);
ll1 = (LinearLayout) findViewById(R.id.ll1);
ll2 = (LinearLayout) findViewById(R.id.ll2);
ll3 = (LinearLayout) findViewById(R.id.ll3);
iv1 = (ImageView) findViewById(R.id.iv1);
iv2 = (ImageView) findViewById(R.id.iv2);
iv3 = (ImageView) findViewById(R.id.iv3);
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
tv3 = (TextView) findViewById(R.id.tv3);
ll1.setOnClickListener(this);
ll2.setOnClickListener(this);
ll3.setOnClickListener(this);
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
clearLL();
hideFragment();
switch (arg0) {
case 0:
iv1.setImageResource(R.drawable.ic_tab_home_hl);
FragmentTransaction ft = manager.beginTransaction();
ft.show(fragment1);
ft.commit();
break;
case 1:
iv2.setImageResource(R.drawable.ic_tab_message_hl);
FragmentTransaction ft1 = manager.beginTransaction();
if (ft1==null) {
fragment2 = new Fragment2();
ft1.add(R.id.vp, fragment2);
}
else {
ft1.show(fragment2);
}
ft1.commit();
break;
case 2:
iv3.setImageResource(R.drawable.ic_tab_mine_hl);
FragmentTransaction ft2 = manager.beginTransaction();
if (ft2==null) {
fragment3 = new Fragment3();
ft2.add(R.id.vp, fragment3);
}
else {
ft2.show(fragment3);
}
ft2.commit();
break;
}
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onClick(View arg0) {
int rd = arg0.getId();
switch (rd) {
case R.id.ll1:
vp.setCurrentItem(0);
break;
case R.id.ll2:
vp.setCurrentItem(1);
break;
case R.id.ll3:
vp.setCurrentItem(2);
break;
}
}
public void clearLL(){
iv1.setImageResource(R.drawable.ic_tab_home_nor);
iv2.setImageResource(R.drawable.ic_tab_message_nor);
iv3.setImageResource(R.drawable.ic_tab_mine_nor);
}
public void hideFragment(){
FragmentTransaction ft = manager.beginTransaction();
if (fragment1!=null) {
ft.hide(fragment1);
}
if (fragment2!=null) {
ft.hide(fragment2);
}
if (fragment3!=null) {
ft.hide(fragment3);
}
ft.commit();
}
}
MyAdapter类
package us.mifeng.viewp_fragment.adapter;
import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class MyAdapter extends FragmentPagerAdapter{
private List<Fragment> mList;
public MyAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
public void setList(List<Fragment> list){
this.mList=list;
}
@Override
public Fragment getItem(int arg0) {
return mList.get(arg0);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mList.size();
}
}
这个 viewpager和fragment嵌套使用就完了