Android开发:ViewPager+Fragment满足内容区域左右滑动

来源:互联网 发布:深圳网络出租屋要取缔 编辑:程序博客网 时间:2024/05/14 00:28
Fragment作为Activity界面的一部分组成出现
可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。
在Activity运行过程中,可以添加、移除或者替换Fragment(add()、remove()、replace())
Fragment可以响应自己的输入事件,并且有自己的生命周期,当然,它们的生命周期直接被其所属的宿主activity的生命周期影响。
  Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。Fragment允许这样的一种设计,而不需要你亲自来管理 viewhierarchy的复杂变化。 通过将activity的布局分散到fragment中, 你可以在运行时修改activity的外观,并在由activity管理的back stack中保存那些变化.
 

1、先写三个java文件:

FriendMainTabFragment.java

ContactMainTabFragment.java

ChatMainTabFragment.java

 继承 Fragment(android.support.v4.app.Fragment包下面的,方便兼容低版本)

package com.imooc.weixin;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class ChatMainTabFragment extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){return inflater.inflate(R.layout.tab01, container, false);}}


添加布局文件xml:
在java的onCreateView中直接return这样一个布局:

  把布局压制进去

tab01.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:gravity="center"    android:orientation="vertical" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="This is first Tab use fragment"        android:textSize="22sp"        android:textStyle="bold" /></LinearLayout>

2、

在MainActivity中,继承FragmentActivity而不是Activity

 

声明下ViewPager:‘

   private ViewPager mViewPager;
   private FragmentPagerAdapter mAdapter;
   private List<Fragment> mDatas;//数据是Fragment列表

 这三个都是在:android.support.v4包下的文件,不要导错包。

 

2、

在onCreate中创建点击事件initView方法:

(1)完成完成ViewPager初始化和ViewPager数据的初始化,最好把适配器mAdapter给ViewPager

(2) 重写getItem(int index) 以及 getCount() 方法

  

public class MainActivity extends FragmentActivity{private ViewPager mViewPager;private FragmentPagerAdapter mAdapter;private List<Fragment> mDatas;//数据是Fragment列表        @Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);//去掉titileBarrequestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);initView();}      //满足内容区域的滑动:完成ViewPager初始化和ViewPager数据的初始化    private void initView()        {           mDatas = new ArrayList<Fragment>();ChatMainTabFragment tab01 = new ChatMainTabFragment();FriendMainTabFragment tab02 = new FriendMainTabFragment();ContactMainTabFragment tab03 = new ContactMainTabFragment();mDatas.add(tab01);mDatas.add(tab02);mDatas.add(tab03);         //ViewPager适配器的初始化mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()){@Overridepublic int getCount(){return mDatas.size();}@Overridepublic Fragment getItem(int arg0){return mDatas.get(arg0);}};//设置的适配器给ViewPagermViewPager.setAdapter(mAdapter);}


 

  

0 0
原创粉丝点击