Fragment和ViewPager嵌套使用

来源:互联网 发布:淘宝swot分析 编辑:程序博客网 时间:2024/05/16 18:39

MainActivity代码:

public class MainActivity extends FragmentActivity implements OnClickListener, OnPageChangeListener{    private List<Fragment> list=new ArrayList<Fragment>();    private FragmentManager fm;    private MyFragment1 myFragment1;    private MyFragment2 myFragment2;    private MyAdapter adapter;    private ViewPager vp;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();         fm = getSupportFragmentManager();        myFragment1 = new MyFragment1();        FragmentTransaction fs = fm.beginTransaction();        fs.add(R.id.ft, myFragment1);        fs.commit();        }    private void initView() {        // TODO Auto-generated method stub        Button bt1=(Button) findViewById(R.id.bt1);        Button bt2=(Button) findViewById(R.id.bt2);        vp = (ViewPager) findViewById(R.id.ft);        list.add(new MyFragment1());        list.add(new MyFragment2());        adapter=new MyAdapter(getSupportFragmentManager());        adapter.setList(list);        vp.setAdapter(adapter);        bt1.setOnClickListener(this);        bt2.setOnClickListener(this);        vp.setOnPageChangeListener(this);    }    @Override    public void onClick(View v) {        // TODO Auto-generated method stub        int ID=v.getId();        switch (ID) {        case R.id.bt1:            System.out.println("11111111111111111111");            vp.setCurrentItem(0);            break;        case R.id.bt2:            System.out.println("2222222222222222222222");            vp.setCurrentItem(1);            break;        }    }    @Override    public void onPageScrollStateChanged(int arg0) {        // TODO Auto-generated method stub    }    @Override    public void onPageScrolled(int arg0, float arg1, int arg2) {        // TODO Auto-generated method stub    }    @Override    public void onPageSelected(int arg0) {        // TODO Auto-generated method stub        FragmentTransaction fs = fm.beginTransaction();        switch (arg0) {        case 0:            vp.setCurrentItem(0);            break;        case 1:            vp.setCurrentItem(1);            break;        default:            break;        }    }}

MyAdapter适配器代码:

public class MyAdapter extends FragmentPagerAdapter{    private List<Fragment> list;    public MyAdapter(FragmentManager fm) {        super(fm);    }    public void setList(List<Fragment> list){        this.list=list;    }    @Override    public Fragment getItem(int arg0) {        // TODO Auto-generated method stub        return list.get(arg0);    }    @Override    public int getCount() {        // TODO Auto-generated method stub        return list.size();    }}

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"    tools:context="com.example.myfragmentchuanzhi.MainActivity" >    <android.support.v4.view.ViewPager          android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/ft"        android:layout_above="@+id/ll"        />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="50dp"        android:id="@+id/ll"        android:orientation="horizontal"        android:layout_alignParentBottom="true"        >        <Button             android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="第一个"            android:id="@+id/bt1"            />        <Button             android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="第二个"            android:id="@+id/bt2"            />    </LinearLayout></RelativeLayout>
0 0
原创粉丝点击