2

의 탭으로 전환하면서 호출기가 내용을 잃어 버렸습니다. 매우 이상한 문제에 직면했습니다. 비슷한 종류의 문제가 인터넷에서 발견되었지만 해결 방법이 없어서이 문제를 해결할 수 없었습니다.조각 탭 탭 호스트에서

문제 ::

I 3 개 탭이 하나 명의 단편 (단편 탭 탭 호스트를 사용하여 작성)마다 탭이 다른 조각을 부탁해 구비하고있다.

첫 번째 탭부터는 뷰 페이저 및 원형 페이지 표시기를 사용하여 점 (원)이있는 이미지를 표시하는 부분을 하나 설정했습니다.

이제 1에서 2까지 이미지를 스 와이프하고 3 등으로 잘 동작합니다. 그러나 이미지 2에 도달 한 후 tab2를 클릭하고 다시 tab1로 돌아 왔을 때 이미지가 손실되었습니다.

귀하의 조언이나 도움이 될 것입니다.
미리 감사드립니다. 내가 아래 ::

FragmentwithTabHost ::

public class FragmentwithTabHost extends Fragment{ 

    private View rootView; 
    private FragmentTabHost mTabHost; 
    private Context mContext; 
    public FragmentwithTabHost() { 
    } 

    public FragmentwithTabHost(Context ctx) { 
     mContext=getActivity(); 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     rootView = inflater.inflate(R.layout.mycardswithtabs, container, 
       false); 

     mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost); 

     mTabHost.setup(getActivity(), getChildFragmentManager(), android.R.id.tabcontent); 
     mTabHost.setBackground(getActivity().getResources().getDrawable(R.drawable.normal)); 
     mTabHost.addTab(
       mTabHost.newTabSpec("tab1").setIndicator("tab1", null), 
       Fragment1.class, null); 
     mTabHost.addTab(
       mTabHost.newTabSpec("tab2").setIndicator("tab2", null), 
       Fragment2.class, null); 
     mTabHost.addTab(
       mTabHost.newTabSpec("tab3").setIndicator("tab3", null), 
       Fragment3.class, null); 
     return rootView; 
    } 
} 

Fragment1 ::

public class Fragment1 extends Fragment{ 

    // private Context mContext; 
    private View rootView; 

    SlidesFragmentAdapter mAdapter; 
    ViewPager mPager; 
    PageIndicator mIndicator; 
    LinearLayout llSponseredImage,llSponserdByText; 
    ImageView imgsponser1,imgsponser2,imgsponser3,imgsponser4; 
    public Fragment1() { 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     rootView = inflater.inflate(R.layout.my_card, container,false); 

     mAdapter = new SlidesFragmentAdapter(getActivity() 
       .getSupportFragmentManager()); 

     llSponseredImage=(LinearLayout)rootView.findViewById(R.id.mycardbottomViewSponseredImage); 
     llSponserdByText=(LinearLayout)rootView.findViewById(R.id.mycardbottomsponsredby); 

     imgsponser1=(ImageView)rootView.findViewById(R.id.imgsponser1); 
     imgsponser2=(ImageView)rootView.findViewById(R.id.imgsponser2); 
     imgsponser3=(ImageView)rootView.findViewById(R.id.imgsponser3); 
     imgsponser4=(ImageView)rootView.findViewById(R.id.imgsponser4); 

     mPager = (ViewPager) rootView.findViewById(R.id.pager); 
     mPager.setOffscreenPageLimit(4); 
     mPager.setClipToPadding(false); 
     mPager.setPageMargin(12); 
     mPager.setAdapter(mAdapter); 

     mIndicator = (CirclePageIndicator) rootView.findViewById(R.id.indicator); 
     mIndicator.setViewPager(mPager); 
     ((CirclePageIndicator) mIndicator).setSnap(true); 

     mPager.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       System.out.println("3242353652523"); 
       MyCardsWithOffersFragment myCardsWithOffersFragment=new MyCardsWithOffersFragment(); 
      } 
     }); 
     mIndicator 
     .setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 
       /*Toast.makeText(getActivity(), 
         "Changed to page " + position, 
         Toast.LENGTH_SHORT).show();*/ 
       if(position==0 || position==2){ 
        llSponseredImage.setVisibility(View.GONE); 
        llSponserdByText.setVisibility(View.GONE); 
       }else if(position==1){ 
        llSponseredImage.setVisibility(View.VISIBLE); 
        llSponserdByText.setVisibility(View.VISIBLE); 

        imgsponser1.setImageResource(R.drawable.sponser1); 
        imgsponser2.setImageResource(R.drawable.sponser2); 
        imgsponser3.setImageResource(R.drawable.sponser3); 
        imgsponser4.setImageResource(R.drawable.sponser4); 
       }else if(position==3){ 
        llSponseredImage.setVisibility(View.VISIBLE); 
        llSponserdByText.setVisibility(View.VISIBLE); 

        imgsponser1.setImageResource(R.drawable.sponser5); 
        imgsponser2.setImageResource(R.drawable.sponser6); 
        imgsponser3.setImageResource(R.drawable.sponser7); 
        imgsponser4.setImageResource(R.drawable.sponser8); 
       } 
      } 

      @Override 
      public void onPageScrolled(int position, 
        float positionOffset, int positionOffsetPixels) { 
      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 
      } 
     }); 

     return rootView; 
    } 

    public class SlidesFragmentAdapter extends FragmentStatePagerAdapter implements IconPagerAdapter { 

     private int[] Images = new int[] { R.drawable.first_image, R.drawable.second_image, 
       R.drawable.third_image, R.drawable.four_image 

     }; 

     private int[] ICONS = new int[] { R.drawable.first_image, R.drawable.second_image, 
       R.drawable.third_image, R.drawable.four_image }; 

     private int mCount = Images.length; 

     public SlidesFragmentAdapter(android.support.v4.app.FragmentManager fragmentManager) { 
      super(fragmentManager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return new DemoFragment(Images[position]); 
     } 

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

     @Override 
     public int getIconResId(int index) { 
      return ICONS[index % ICONS.length]; 
     } 
     public float GetPageWidth (int position) { 
      return 0.93f; 
     } 
     public void setCount(int count) { 
      if (count > 0 && count <= 10) { 
       mCount = count; 
       notifyDataSetChanged(); 
      } 
     } 
    } 
} 
+0

이것을 확인할 수 있습니다. http://stackoverflow.com/questions/19331492/how-to-maintain-fragments-state-in-the-application?answertab=votes#tab-top –

답변

0

코드를 게시하고 여기에 대한 이해를 돕기 위하여

나는이 사용하여 달성 할 수 있다고 생각 show() 또는 add() 메소드. Tabhost가없는 활동 인 경우 쉽습니다. 이 경우 탭 전환 중에 동일한 로직을 적용해야합니다.

Check this solution

나는 이것이 당신에게 약간의 아이디어를 줄 것이다 같아요.

+0

답장을 보내 주셔서 감사합니다. 솔루션 당신이 나를 위해 나던 일을 게시했습니다. 나는 시도하고 그것은 빈 조각을 보여줍니다. – AndroidLearner