在ViewPager中实现Fragment以及tab Strip

时间:2014-12-20 06:43:05

标签: java android android-fragments android-viewpager

我正在viewpager 中实现片段视图。情况是我点击多个标签,片段从网上加载数据。 现在假设我有5个选项卡,其中所有选项卡都分配了不同的表单,在调用Web服务之后会为其填充详细信息。 现在,问题是,在第一个片段上,数据使用asynctask加载,现在当我在选项卡上滑动/单击下一个片段时,同样的异步任务再次加载。

以下是我的代码:

view_pager_client.xml

<com.astuetz.PagerSlidingTabStrip
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="48dip" />

    <android.support.v4.view.ViewPager
        android:id="@+id/vpPager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

    </android.support.v4.view.ViewPager>

ViewPagerFragment.java

public class ViewPagerFragment extends Fragment {
    View view;
    ViewPagerAdapter adapterViewPager;
    PagerSlidingTabStrip tabs;


@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
    view=inflater.inflate(R.layout.view_pager_client, container,false);
    initViews();
    return view;
    }



private void initViews() {

        ViewPager vpPager = (ViewPager)view. findViewById(R.id.vpPager);
        adapterViewPager = new ViewPagerAdapter(getActivity()
                .getSupportFragmentManager());
        vpPager.setAdapter(adapterViewPager);
        tabs = (PagerSlidingTabStrip)view.findViewById(R.id.tabs);
        tabs.setIndicatorColor(getResources().getColor(R.color.Red));
        tabs.setBackgroundColor(getResources().getColor(R.color.White));
         tabs.setViewPager(vpPager);
         tabs.notifyDataSetChanged();

        vpPager.setOnPageChangeListener(new OnPageChangeListener() {

            // This method will be invoked when a new page becomes selected.
            @Override
            public void onPageSelected(int position) {
                tabs.notifyDataSetChanged();
            }

            // This method will be invoked when the current page is scrolled
            @Override
            public void onPageScrolled(int position, float positionOffset,
                    int positionOffsetPixels) {
                // Code goes here 
//              tabs.notifyDataSetChanged();
            }

            @Override
            public void onPageScrollStateChanged(int state) {
                // Code goes here
                tabs.notifyDataSetChanged();
            }
        });

    }

FragmentPagerAdapter.java

// Returns the fragment to display for that page
        @Override
        public Fragment getItem(int position) {
            switch (position) {
            case 0: 
                return new ProfileSummary();
            case 1: 
                return new ContactList();
            case 2: 
                return new ProfileSummary();
            default:
                return new ProfileSummary();
            }
        }

现在在个人资料摘要和联系人列表中,我正在从Web加载数据。为概要文件摘要执行的任务也对联系人列表执行。

请帮我解决一下这个问题。

0 个答案:

没有答案