【问题标题】:Fragment doesnt show after coming from another fragment/activity来自另一个片段/活动后,片段不显示
【发布时间】:2015-10-30 07:24:22
【问题描述】:

我使用 FragmentPagerAdapter 和 ViewPager 来显示两个片段。第一次打开片段时,都显示/工作正常。当我去另一个活动或去这两个之外的另一个片段并回来时,什么都没有出现。这是代码。

事件:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Events extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.event, container, false);
    // Get the ViewPager and set it's PagerAdapter so that it can display items
    ViewPager viewPager = (ViewPager) rootView.findViewById(R.id.pager);
    FragmentManager fm = getFragmentManager();
    viewPager.setAdapter(new MyFragmentPageAdapter(fm));

    // Give the SlidingTabLayout the ViewPager
    SlidingTabLayout slidingTabLayout = (SlidingTabLayout) rootView.findViewById(R.id.tabs);
    // Center the tabs in the layout
    slidingTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
        @Override
        public int getIndicatorColor(int position) {
            return getResources().getColor(R.color.ColorSecondary);
        }
    });
    slidingTabLayout.setDistributeEvenly(true);
    slidingTabLayout.setViewPager(viewPager);
    return rootView;
  }
}

MYFramentAdapter.class:

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;


public class MyFragmentPageAdapter extends FragmentPagerAdapter{

final int PAGE_COUNT = 2;
private String tabTitles[] = new String[] { "Upcoming", "Calendar" };
private Context context;

    public MyFragmentPageAdapter(FragmentManager fm) {
        super(fm);

    }
@Override
public int getCount() {
    return PAGE_COUNT;
}

@Override
public Fragment getItem(int pos) {
    switch(pos) {

        case 0: return FragmentEvents.newInstance(0);
        case 1: return  FragmentCalendar.newInstance(1);

        default: return null;
    }
}

@Override
public CharSequence getPageTitle(int position) {
    // Generate title based on item position
    return tabTitles[position];
}

}

【问题讨论】:

  • 您是否尝试使用嵌套片段? (另一个片段中的片段)
  • 没有。分开的片段。 2 个标签中的 2 个片段。
  • 那么为什么是事件片段中的 ViewPager 呢?
  • 好的。那你是对的。事件是主要片段。我在 viewpager 中有两个子(子)片段。

标签: android android-fragments android-viewpager fragmentpageradapter


【解决方案1】:

已解决:

由于嵌套片段,我不得不在 ViewPager 中使用 getChildFragmentManager()。

【讨论】:

  • 谢谢!拯救了我的一天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多