2013-07-04 2 views
0

탭과 함께 이중 창 조각이있는 해결책을 찾기 위해 여러 날을 지낸 후에 필자는 포기하고 자신의 목록보기를 만들었습니다. 내 탭을 관리하십시오. 모든 코드는 탭에서 이전 조각을 제거하고 목록에서 클릭 한 항목을 기반으로 새 조각을 만들려고하는 한 부분을 제외하고 모두 작동합니다. 여기조각이 제거되지 않았습니다

는 탭의 조각이 생성되는 곳이다 :

내가리스트 뷰 클릭에서 조각을 추가
public class AppSectionsPagerAdapter extends FragmentPagerAdapter { 
    public AppSectionsPagerAdapter(FragmentManager fm) { 
     super(fm);         
    } 
    //THESE FRAGMENTS ARE GENERATED WITH TABS AT START 

@Override 
public Fragment getItem(int i) { 
    switch (i) {  
    case 0: 
      return new DescriptionFragment(); 
    case 1: 
     return new ImagesFragment(); 
    default: 
      return new DescriptionFragment(); 
    } 
} 

:

public void addfragment() { 
//THIS FRAGMENT GOES ON TOP AFTER LISTVIEW CLICK 
    kick_activity.this.getSupportFragmentManager().popBackStack(); 
    DescriptionFragment fragment = new DescriptionFragment(); 
    android.support.v4.app.FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.replace(R.id.container, fragment); 
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
    ft.commit(); 
} 

내 DescriptionFragment 조각 :

public static class DescriptionFragment extends Fragment { 
     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_section_description, container, false); 
     text = ((TextView) rootView.findViewById(R.id.description));   
     text.setText(Html.fromHtml(description_text)); 
     return rootView; 
} 

I 내가 뭘 잘못하고 있는지, 그냥 어떻게 고쳐야할지 모르겠다. 그것은 getItem()에서 단편이 만들어지고 내 listview를 클릭하고 addfragment()가 호출 될 때 링크되지 않은 단편으로 인해 오버레이 된 것처럼 보입니다. 내 모든 조각이 연결되어 오버레이되지 않도록 'return new DescriptionFragment'대신 'case 0'에 무엇을 넣을 수 있습니까?

주 -. 내가 시도하고) (의 getItem에서 응용 프로그램 충돌을 ft.repalce를 사용하여 로그 캣에 따라 때, 그것은 R.id.container을 찾을 수없는, 그래서 난 단지에 그 코드를 이동할 수 없습니다

감사합니다 당신의 도움을 위해 사전에, 나는 꽤 며칠 동안이 일에 매달려 있기 때문에 어떤 해결책을 주셔서 감사하겠습니다.

답변

1

내가 만들려는 각 목록 항목에 대해 제대로 이해하고 /를 FragmentPagerAdapter에서 호스팅됩니다 해당 세부 정보 및 이미지 조각을 설정? 목록 항목이 전화 할 수있는 클릭

그렇다면, -

mPager.setAdapter(new MyAdapter(getSupportFragmentManager(), listItemPosition); 
목록 항목을 클릭 할

하고 FragmentPagerAdapter이 조각을 관리 할 수 ​​있습니다.

또한 목록 항목 위치를 취하여 적절하게 사용하려면 어댑터를 변경해야합니다. 예 : -

public static class MyAdapter extends FragmentPagerAdapter { 
    private int mPosition; 
    public MyAdapter(FragmentManager fm, int position) { 
     super(fm); 
     mPosition = position; 
    } 
    ... 
} 
+0

정말 고마워요! –

0

실행 코드를 사용하려면 true이고 addFragment 메소드는 사용할 수 없습니다.

공용 클래스 ViewPagerExample는 FragmentActivity

{ 개인 MyAdapter의 mAdapter을 확장; 개인 ViewPager mPager; 개인 정적 활동 활동;

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main); 

    mAdapter = new MyAdapter(getSupportFragmentManager()); 
    activity = this; 
    mPager = (ViewPager) findViewById(R.id.pager); 
    mPager.setAdapter(mAdapter); 
} 

public static class MyAdapter extends FragmentPagerAdapter { 
    public MyAdapter(FragmentManager fm) { 
     super(fm); 
    } 

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

@Override 공개 조각의 getItem (INT의 ⅰ) { 스위치 (I) {
경우 0 :) (새 DescriptionFragment를 반환 ; 사례 1 : return new ImagesFragment(); 기본값 : return new DescriptionFragment(); }

}

}

}

관련 문제