의 탭으로 전환하면서 호출기가 내용을 잃어 버렸습니다. 매우 이상한 문제에 직면했습니다. 비슷한 종류의 문제가 인터넷에서 발견되었지만 해결 방법이 없어서이 문제를 해결할 수 없었습니다.조각 탭 탭 호스트에서
문제 ::
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();
}
}
}
}
이것을 확인할 수 있습니다. http://stackoverflow.com/questions/19331492/how-to-maintain-fragments-state-in-the-application?answertab=votes#tab-top –