Salut, j'ai essayé d'entrer dans un viewpager dans un fragment, cependant, j'ai suivi de nombreux tutoriels et de venir en vain. Je suis en train de créer un viewpager au milieu d'une autre mise en page de fragment voici mes codes:ViewPager n'apparaissant pas dans une mise en page fragmentée
Adaptateur:
public class CardStackAdapter extends FragmentPagerAdapter {
private Context context;
public CardStackAdapter(Context context, FragmentManager fm) {
super(fm);
this.context =context;
}
@Override
public Fragment getItem(int position)
{
return CardStackFragment.newInstance(position);
}
@Override
public int getCount() {
return 5;
}
}
Fragment qui contient le ViewPager y compris la classe du transformateur:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_social_people,
container, false);
// stack cards
ViewPager mPager;
PagerAdapter mAdapter;
mPager = (ViewPager)view.findViewById(R.id.stackcardvp);
mAdapter = new CardStackAdapter(getActivity(),getChildFragmentManager());
mPager.setPageTransformer(true,new CardStackTransformer());
mPager.setOffscreenPageLimit(2);
mPager.setAdapter(mAdapter);
// mPager.setAdapter(buildAdapter());
return view;
}
Transformateur:
private class CardStackTransformer implements ViewPager.PageTransformer{
@Override
public void transformPage(View page, float position) {
if(position >= 0){
page.setScaleX(0.0f-0.02f * position);
page.setScaleY(0.0f);
page.setTranslationX(-page.getWidth()+position);
page.setTranslationY(30 + position);
}
}
}// private class
et le fragment pour la viewpager:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_card_stack,
container, false);
return view;
}
public static CardStackFragment newInstance(int selectedIdForIndex) {
CardStackFragment fragment = new CardStackFragment();
Bundle args = new Bundle();
args.putInt(ARG_LAYOUT_ID, selectedIdForIndex);
fragment.setArguments(args);
return fragment;
}
mise en page XML pour le fragment de contenir la viewpager:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="30dp">
<FrameLayout
android:id="@+id/fl"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
>
<android.support.v4.view.ViewPager
android:id="@+id/stackcardvp"
android:layout_width="match_parent"
android:layout_height="320dp"
android:layout_centerInParent="true"
android:visibility="visible" />
</FrameLayout>
</LinearLayout>
Le problème est que j'essaie les différents tutoriels d'utilisation GetChildFragment cela ne fonctionne toujours pas Apparemment, j'ai même essayé de créer un adaptateur de build mais sans résultat. Merci d'avance pour le conseil.
okay j'ai fait cela et je l'ai remplacé par 'return new CardStackFragment();' mais toujours pas de changements à la sortie. semble être vide –
vous avez raison! mais si c'est le cas, comment puis-je ajouter dans mes transformations? –
comme ce que les transformations que vous essayez d'ajouter dans cette classe CardStackTransformer()? Que les calculs sont mauvais Je suppose que – Anonymous