您的位置:首页 > 移动开发 > Android开发

android中viewPager+fragment实现的屏幕左右切换(进阶篇)

2014-09-14 20:02 435 查看
Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。可以看做是一个子Activity。

先看一下布局:

<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"
tools:context=".ViewPagerActivity" >

<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
</android.support.v4.view.ViewPager>

</LinearLayout>


主文件:ViewPagerActivity继承FragmentActivity

package com.example.viewpagerdemo;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;

import com.example.adapter.fragmentAdapter;

public class ViewPagerActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_pager);
List<Fragment> fragments = new ArrayList<Fragment>();
for (int i = 0; i < 3; i++) {
Fragment f = new ButtonFragment();
fragments.add(f);
}
ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
fragmentAdapter fa = new fragmentAdapter(getSupportFragmentManager(),
fragments);
vp.setAdapter(fa);
vp.setCurrentItem(0);
}
}


新建fragmentAdapter继承FragmentPagerAdapter并未写出实现的方法

package com.example.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 fragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
private FragmentManager fm;

public fragmentAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;

}

public fragmentAdapter(FragmentManager fm) {
super(fm);
this.fm = fm;
}

@Override
public Fragment getItem(int arg0) {
return fragments.get(arg0);
}

@Override
public int getCount() {
return fragments.size();
}

}


定义要展示的fragment内容,在这只放一个Button

package com.example.viewpagerdemo;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class ButtonFragment extends Fragment {     private View rootView;
12
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.guide1, container, false);
return rootView;
18     }
19 }


至此实现3个含有Button可以左右切换了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: