Idea is when user cliks on one of three pictures, in fragment should be shown viewpager, every picture have her own viewpager. Pictures and fragment(viewpagers) should be in one activity. I true every solution I found on internet but nothing helps me. I would be thankful if someone could helps me
This is how my code looks like:
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
ImageView mercedes=(ImageView) findViewById(R.id.imageView);
ImageView bmw=(ImageView) findViewById(R.id.imageView2);
ImageView ford=(ImageView) findViewById(R.id.imageView3);
mercedes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment mf=new MercedesFragment();
FragmentManager fragmentManager=getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.fragmentLayout, mf).commit();
}
});
bmw.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment bf=new BMWFragment();
FragmentManager fragmentManager=getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.fragmentLayout, bf).commit();
}
});
ford.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment ff=new FordFragment();
FragmentManager fragmentManager=getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.fragmentLayout,ff).commit();
}
});}
}
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"> android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<linearlayout> android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:id="@+id/main">
<ImageView
android:layout_width="100dp"
android:layout_height="120dp"
android:src="@drawable/mercedes_logo"
android:id="@+id/imageView" />
<ImageView
android:layout_width="100dp"
android:layout_height="120dp"
android:src="@drawable/bmw_logo_jpeg"
android:id="@+id/imageView2" />
<ImageView
android:layout_width="100dp"
android:layout_height="120dp"
android:src="@drawable/ford_logo"
android:id="@+id/imageView3" />
<linearlayout> android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragmentLayout"
android:orientation="horizontal">
public class MercedesFragment extends Fragment {
public static final String MERCEDES_ARGS="mer_args";
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.mercedes_layout,container,false);
ViewPager mvp=(ViewPager) view.findViewById(R.id.mercedes);
mvp.setAdapter(adapterMercedes());
return view;
}
public PagerAdapter adapterMercedes(){
return (new AdapterMercedes(getChildFragmentManager()));
} }
...
public class AdapterMercedes extends FragmentPagerAdapter {
public AdapterMercedes(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
MercedesFragment mercFrag=new MercedesFragment();
Bundle mercArgs=new Bundle();
switch (position){
case 0:
mercArgs.putInt(MercedesFragment.MERCEDES_ARGS,R.drawable.merdza1);
break;
case 1:
mercArgs.putInt(MercedesFragment.MERCEDES_ARGS,R.drawable.merdza2);
break;
case 2:
mercArgs.putInt(MercedesFragment.MERCEDES_ARGS, R.drawable.merdza3);
break;
}
mercFrag.setArguments(mercArgs);
return mercFrag;
}
@Override
public int getCount() {
return 3;
} }
..
<android.support.v4.view.viewpager xmlns:android="http://schemas.android.com/apk/res/android">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mercedes">
...
public class BMWFragment extends Fragment {
public static final String BMW_ARGS="bmw_args";
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.bmw_layout,null);
ViewPager bvp=(ViewPager) view.findViewById(R.id.bmw);
bvp.setAdapter(adapterBMW());
return view;
}
public PagerAdapter adapterBMW(){
return (new AdapterBMW(getChildFragmentManager()));
} }
...
public class AdapterBMW extends FragmentPagerAdapter {
public AdapterBMW(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
BMWFragment BMWFrag=new BMWFragment();
Bundle BMWArgs=new Bundle();
switch (position){
case 0:
BMWArgs.putInt(BMWFragment.BMW_ARGS,R.drawable.bmw1);
break;
case 1:
BMWArgs.putInt(BMWFragment.BMW_ARGS,R.drawable.bmw2);
break;
case 2:
BMWArgs.putInt(BMWFragment.BMW_ARGS, R.drawable.bmw3);
break;
}
BMWFrag.setArguments(BMWArgs);
return BMWFrag;
}
@Override
public int getCount() {
return 3;
}
}
...
<android.support.v4.view.viewpager xmlns:android="http://schemas.android.com/apk/res/android">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bmw">
public class FordFragment extends Fragment {
public static final String FORD_ARGS="ford_args";
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.ford_layout,null);
ViewPager fvp=(ViewPager) view.findViewById(R.id.ford);
fvp.setAdapter(adapterFord());
return view;
}
public PagerAdapter adapterFord(){
return (new AdapterFord(getChildFragmentManager()));
} }
.
public class AdapterFord extends FragmentPagerAdapter {
public AdapterFord(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
FordFragment FordFrag=new FordFragment();
Bundle FordArgs=new Bundle();
switch (position){
case 0:
FordArgs.putInt(FordFragment.FORD_ARGS,R.drawable.ford1);
break;
case 1:
FordArgs.putInt(FordFragment.FORD_ARGS,R.drawable.ford2);
break;
case 2:
FordArgs.putInt(FordFragment.FORD_ARGS, R.drawable.ford3);
break;
}
FordFrag.setArguments(FordArgs);
return FordFrag;
}
@Override
public int getCount() {
return 3;
} }