I have a set of buttons on the left hand side Fragment Activity . Also i have created a two fragments, webview
and ViewPagerFragment
with 3 ImageFragments
. The Question is when i try to replace webview with Viewpager i can no more swipe only 1 ImageFragment
get shown. I can no more swipe across them .
Here is my ImageFragment
public class ImageFragment extends Fragment {
private int imageResourceId;
OnClickListener listener;
public MyAdapter mAdapter;
public ViewPager mPager;
public ImageFragment(){
}
public static Fragment newInstance() {
// TODO Auto-generated method stub
ImageFragment mg = new ImageFragment();
return mg;
}
public ImageFragment(int imageResourceId) {
this.imageResourceId = imageResourceId;
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("Test", "ImageFragment");
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.image_layout, container, false);
View view2 = inflater.inflate(R.layout.pagerview,null);
mPager = (ViewPager) view.findViewById(R.id.pager);
Log.d("ImageFragment","mPager = "+mPager.toString());
mAdapter = new MyAdapterDummy().new MyAdapter(getFragmentManager());
new setAdapterTask().execute();
ImageView imageView1 = (ImageView) view.findViewById(R.id.imageView1);
ImageView imageView2 = (ImageView) view.findViewById(R.id.imageView2);
ImageView imageView3 = (ImageView) view.findViewById(R.id.imageView3);
ImageView imageView4 = (ImageView) view.findViewById(R.id.imageView4);
ImageView imageView5 = (ImageView) view.findViewById(R.id.imageView5);
ImageView imageView6 = (ImageView) view.findViewById(R.id.imageView6);
imageView1.setImageResource(imageResourceId);
imageView2.setImageResource(imageResourceId);
imageView3.setImageResource(imageResourceId);
imageView4.setImageResource(imageResourceId);
imageView5.setImageResource(imageResourceId);
imageView6.setImageResource(imageResourceId);
return view;
}
private class setAdapterTask extends AsyncTask<Void,Void,Void>{
protected Void doInBackground(Void... params) {
return null;
}
protected void onPostExecute(Void result) {
mPager.setAdapter(mAdapter);
}
}
And Here is the Adapter
public class MyAdapterDummy extends FragmentActivity {
static String TAG = "ViewPagerExample";
MyAdapter mAdapter;
ViewPager mPager;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager mgr = getSupportFragmentManager();
}
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
public int getCount() {
return 3;
}
public Fragment getItem(int position) {
Log.d(TAG, "Item Position : " + position);
switch (position) {
case 0:
return new ImageFragment(R.drawable.ic_launcher);
case 1:
return new ImageFragment(R.drawable.ic_launcher);
case 2:
return new ImageFragment(R.drawable.ic_launcher);
default:
return null;
}
}
@Override
public CharSequence getPageTitle(int position) {
String str = "Top Listings";
return str;
}
}
}
Any help would be appreciated.
Thank You
I solved this.....
You have to convert your ViewPager also into a Fragment. I know its a ViewGroup but still. Then u can use the standard replace method of transactions in you onclick to replace a fragment.
Here is the code with changes.
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
l.setItemChecked(position, true);
Fragment df = DetailsFragment.newInstance();
Fragment page = FragmentPagerAdapterClass.newInstance();
if (listener != null) {
if (position == 0) {
Log.d(TAG, "Position = " + position);
getFragmentManager().beginTransaction().remove(DetailsFragment.newInstance());
getFragmentManager().beginTransaction()
.replace(R.id.layout_detail, FragmentPagerAdapterClass.newInstance()).commit();
getFragmentManager().executePendingTransactions();
} else {
Log.d(TAG, "Position = " + position);
McDonalds c = EU.get(position);
String url = getString(c.url);
new DetailsFragment().setUrl(url);
getFragmentManager().beginTransaction().remove(FragmentPagerAdapterClass.newInstance());
getFragmentManager().beginTransaction()
.replace(R.id.layout_detail, DetailsFragment.newInstance()).commit();
getFragmentManager().executePendingTransactions();
// listener.onCountrySelected(EU.get(position));
}
}
}
Anyway .... thanx for all you support :)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.