概况 : 开启一个MainActivity.java 文件, 开始加载两个Fragment, 在第二个Fragment 中 , 点击按钮, 一旦点击, 则生成一个新的Fragment.
文件:
MainActivity.java --> 继承于 FragmentActivity , 对应的布局为 activity_main.xml 文件 , 创建一个ViewPager
FragmentOne.java --> 继承于Fragment , 对应的布局为 first_fragment.xml
FragmentTwo.java --> 继承于Fragment , 对应的布局为 second_fragment.xml , 并且设置点击实践, 创建新的fragment
代码:
// MainActivity.java
package com.yline.viewpager;
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.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
public class MainActivity extends FragmentActivity{
private List<Fragment> mFragmentList;
private ViewPagerAdapter mVPAdapter;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFragmentList = new ArrayList<Fragment>();
mViewPager = (ViewPager) findViewById(R.id.viewpager);
mVPAdapter = new ViewPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mVPAdapter);
addContent(new FragmentOne());
addContent(new FragmentTwo());
}
private class ViewPagerAdapter extends FragmentPagerAdapter{
/**
* 管理 FragmentList
* @param fm
*/
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
mFragmentList.remove(mFragmentList);
//可以选择在这里, 直接新建,加载Fragment
//Fragment Fragment = new FragmentOne();
//mFragmentList.add(Fragment);
}
/**
* 得到当前界面
*/
@Override
public Fragment getItem(int location) {
return mFragmentList.get(location);
}
/**
* //获取当前窗体界面数
*/
@Override
public int getCount(){
return mFragmentList.size();
}
}
public void addContent(Fragment fragment){
int size = mFragmentList.size();
mFragmentList.add(size,fragment); //size为加载在哪一页后面
mVPAdapter.notifyDataSetChanged();
/**
* 更新到当前, 最新的一页
*/
//mViewPager.setCurrentItem(size);
}
}
// activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</RelativeLayout>
// FragmentOne.java
package com.yline.viewpager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentOne extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_one, null);
return v;
}
}
// FragmentTwo.java
package com.yline.viewpager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
public class FragmentTwo extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_two, null);
return v;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button add = (Button) view.findViewById(R.id.btn_two);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
MainActivity newOne = (MainActivity) getActivity();
newOne.addContent(new FragmentThree());
}
});
}
}
运行:
1) 运行,开启一个MainActivity.java 文件, 开始加载两个Fragment,
2) 在第二个Fragment 中 , 点击按钮, 一旦点击, 则生成一个新的Fragment.
图:
Android_ViewPager基础_141008代码链接 : (可直接运行)
http://pan.baidu.com/s/1eQhA658
4161

被折叠的 条评论
为什么被折叠?



