1.先布局
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp"
>
</android.support.v4.view.ViewPager>
</RelativeLayout>
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ListView
android:id="@+id/frag_left_lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
></ListView>
</RelativeLayout>
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity" >
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/ic_launcher"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是一只机器人"
/>
</LinearLayout>
2.manActivity类
public class MainActivity extends FragmentActivity {
List<Fragment> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
* 1.初始化控件
* 2、初始化数据
* 3、创建adapter对象
* 4、绑定
ViewPager vp = (ViewPager) findViewById(R.id.vp);
initData();
//因为继承FragmentActivity 那么我们就可以在该类中获取到 这个Fragment管理器
FragmentManager fm = getSupportFragmentManager();
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(fm);
vp.setAdapter(adapter);
}
private void initData() {
list = new ArrayList<Fragment>();
list.add(new FragmentOne());
list.add(new FragmentTwo());
}
class MyFragmentPagerAdapter extends FragmentPagerAdapter{
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
* 该方法是用来返回显示的 item 就是 Fragment对象
* arg0 就是当前viewpager的position
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
if(list != null){
return list.size();
}
return 0;
}
}
}
3.Fragment的实现
推荐使用support.v4包中的fragment
因为该包是用来支持3.0版本一下的手机的
public class FragmentOne extends Fragment{
List<String> list;
为该fragment 设置一个现实的 view
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
* 1、作为fragment要显示的视图 可以使用View.inflate引入
* 2、在引入布局文件的时候 需要用到activity的上下文
* 问题:因为当前是在Fragment类中 如果来获取该view需要显示的Activity上下问
* 思考,之前说过 fragment的使用必须依赖于Activity,
* 所以api提供了一个方法 可以在Fragment中获取依赖的Activity对象
View view = View.inflate(getActivity(), R.layout.frag_left, null);
* 1
* 2
* 3
* 4
ListView lv = (ListView) view.findViewById(R.id.frag_left_lv);
initData();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter);
return view;
}
private void initData() {
list = new ArrayList<String>();
for (int i = 0; i < 20; i++) {
list.add("导航" + i);
}
}
}