사용자에게 팁을 표시하기 위해 조각을 만들려고합니다. 프래그먼트의 createView 메소드는 ViewPager를 리턴하고 AsyncTask를 통해 PagerAdapter를 설정한다. 이 단편은 사용자가 버튼을 누를 때 FragmentActivity에 추가됩니다. 사용자가 동일한 버튼을 다시 누르는 마지막 항목에 도달하면이 부분이 FragmentActivity에서 제거됩니다. android.R.id.content에 의해 식별 된 FrameLayout에 조각을 추가한다는 점에 유의해야합니다.ViewPager가 제거 후 FrameLayout에 다시 추가 된 항목을로드하지 않습니다.
좋아, 처음 버튼을 누르면 예상대로 작동합니다. 그러나 두 번째로 버튼을 누르면 ViewPager가 나타나지 않습니다. View Hierarchy를 사용하여 일어나는 일을 볼 때, ViewPager가 올바른 위치에 있지만 항목이없는 것을 볼 수 있습니다. 디버깅을하고 PagerAdapter의 getCount()가 호출되었지만 getItem이 호출되지 않는다는 점에 유의하십시오.
FragmentTransaction fragmentTransaction = fragmentActivity.getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(android.R.id.content, this, TAG);
fragmentTransaction.commit();
그리고 조각이 방법을 제거 :
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.remove(tipManagerFragment);
fragmentTransaction.commit();
이는 내가 조각이 방법을 추가
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View tipsView = inflater.inflate(R.layout.tip_manager_layout, container, false);
this.tipPagerAdapter = new TipPagerAdapter(getFragmentManager(), getArguments().getIntArray(TIP_LAYOUT_IDS_KEY));
this.viewPager = (ViewPager) tipsView.findViewById(R.id.tip_pager);
this.viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if(position == (tipPagerAdapter.getCount()-1)){
stop();
}
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
// Workaround to set the PagerAdapter within a fragment transaction
new SetViewPagerAdapterTask().execute();
return tipsView;
}
:
이
내 조각의 createView 방법입니다 조각에 의해 팽창 된 레이아웃 :<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tip_pager"
android:layout_width="fill_parent"
android:layout_height="175dp"
android:layout_gravity="center_horizontal|bottom"
android:paddingBottom="2dp" />
누군가이 문제를 해결해 줄 수 있습니까?
편집 : 잠시 동안
, 나는 활동에 추가 한 후 조각의 표시 및 숨기기 방법을 사용하고 있습니다. 그러나 올바른 접근 방식은 아닙니다. 왜 ViewPager로 단편을 다시 추가 할 수 없는지 이해할 수 없습니다. ViewPager가 올바르게 추가되고 제거되지만 두 번째로는 아무 것도 표시되지 않습니다.