Android开发之动态添加fragment

在Android开发中,我们经常会遇到要使用fragment的情况,比如说首页,比如说订单管理等等,下面我们来讲讲动态添加fragment。


本文讲的是如何实现动态添加Fragment,标题栏可动态添加,fragment可动态添加,非常的灵活,同时加了线条滑动效果,看效果图,效果图不是gif的,所以如果想看具体效果,可以下载本项目源码自己运行查看,项目是用android studio开发,使用eclipse的朋友可以移植过去,非常简单,欢迎大家一起交流学习。

Android开发之动态添加fragment_第1张图片


下面我们来看看具体实现,先看activity_main.xml




    

    

    
    

在这里我使用了一个自定义布局,就是SlidingTabLayout,这个是用来添加标题栏的,对应到fragment,同时添加下划线滑动效果,具体代码可下载项目查看,这里就不多说了。


接下来我们看MainActivity的代码:

/**
 * 实现动态添加Fragment,头部可动态添加,fragment可动态添加,非常的灵活,
 * 同时加了线条滑动效果
 */
public class MainActivity extends AppCompatActivity {

    SlidingTabLayout mTab;

    ViewPager mViewPager;
    FragmentPagerAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
    }

    private void initView(){
        mTab = (SlidingTabLayout) findViewById(R.id.tab_fragment);
        mViewPager = (ViewPager) findViewById(R.id.viewpager_fragment);

        mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
            // titles作为滑动标题栏,动态添加数据进去就可以了
            String[] titles = { "全部", "待付款", "待发货", "待收货", "待评价" };

            @Override
            public Fragment getItem(int position) { // 开始动态添加fragment
                FragmentTest fragment = new FragmentTest();
                Bundle bundle = new Bundle();
                bundle.putInt("position", position);
                bundle.putString("title", titles[position]);
                fragment.setArguments(bundle);
                return fragment;
            }

            @Override
            public int getCount() { // 添加fragment个数
                return titles.length;
            }

            @Override
            public CharSequence getPageTitle(int position) { // 添加fragment标题
                return titles[position];
            }
        };
        mViewPager.setAdapter(mAdapter);

        mTab.setCustomTabView(R.layout.custom_tab, 0); // 添加头部xml,可自定义
        mTab.setSelectedIndicatorColors(0xffe8303d); // 下滑线的颜色
        mTab.setBackgroundColor(0xffffffff); // 头部背景颜色
        mTab.setViewPager(mViewPager);
    }

MainActivity是不是非常的简单呢,下面我们来看看Fragment的代码:

public class FragmentTest extends Fragment {

    TextView mTxtNumber;

    int mPosition;
    String mTitle = "";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = View.inflate(getActivity(), R.layout.fragment_tab, null);

        mPosition = getArguments().getInt("position");
        mTitle = getArguments().getString("title");
        mTxtNumber = (TextView) view.findViewById(R.id.txt_fragment_number);

        mTxtNumber.setText("第" + mPosition + "个fragment==" + mTitle);
        return view;
    }
}

好了,动态添加fragment的功能到这里就已经实现了,代码是不是非常的简单呢,具体需要做成什么样式由你们自己去修改了,我这里是拿订单管理模块来作为例子,具体代码见下方下载链接。

完整项目下载链接:http://download.csdn.net/detail/emptoney/9753185


你可能感兴趣的:(Android开发之动态添加fragment)