How to jump from the zeroth index of viewpager to the last index of the view pager? That is how to make the view pager circular? I want jump to last index if the user swipes left and from the last page if the user swipes right, it should jump to the first page.
Java File
package com.example.hakimi.firebasemessaging;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import com.eftimoff.viewpagertransformers.CubeInTransformer;
import com.eftimoff.viewpagertransformers.DefaultTransformer;
import com.eftimoff.viewpagertransformers.DrawFromBackTransformer;
import com.eftimoff.viewpagertransformers.RotateUpTransformer;
import com.eftimoff.viewpagertransformers.StackTransformer;
import com.eftimoff.viewpagertransformers.TabletTransformer;
import java.util.ArrayList;
public class NewsCardView extends AppCompatActivity {
private CustomPagerAdapter mCustomPagerAdapter;
private ViewPager mViewPager;
private ArrayList<NewsModel> arrayList = MainActivity.mArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news_view_activity);
Bundle bundle = getIntent().getExtras();
int id = bundle.getInt("id");
mCustomPagerAdapter = new CustomPagerAdapter(this,arrayList,mViewPager);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mCustomPagerAdapter);
mViewPager.setPageTransformer(true, new TabletTransformer());
mViewPager.setCurrentItem(id);
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if(position==mViewPager.getAdapter().getCount()-1){
/* Intent reg = new
Intent(Illustrations.this,Register_Page.class);*/
// startActivity(reg);
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
});
}
}
Xml file
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relativeLayout">
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
>
</android.support.v4.view.ViewPager>
</RelativeLayout>
Adapter
class CustomPagerAdapter extends PagerAdapter {
Context mContext;
LayoutInflater mLayoutInflater;
private int[] pageIDsArray;
private int count;
ArrayList<NewsModel> news;
public CustomPagerAdapter(Context context,ArrayList<NewsModel> news,final ViewPager pager) {
this.news=news;
mContext = context;
mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return news.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((LinearLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View itemView = mLayoutInflater.inflate(R.layout.pager_item, container, false);
ImageView imageView = (ImageView) itemView.findViewById(R.id.imageView);
// imageView.setImageResource(mResources[position]);
TextView newstitle,newsdes;
TextView gotosrc;
newstitle=(TextView) itemView.findViewById(R.id.pagertitle);
newsdes=(TextView) itemView.findViewById(R.id.pagerdes);
newsdes.setMovementMethod(new ScrollingMovementMethod());
gotosrc=(TextView) itemView.findViewById(R.id.tvsrc);
gotosrc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(mContext,WebViewActivity.class);
mContext.startActivity(intent);
}
});
newstitle.setText(news.get(position).getNewsTitle());
newsdes.setText(news.get(position).getNewsData());
String imgurll=news.get(position).getNewsImgUrl();
Picasso.with(mContext)
.load(imgurll)
.resize(300, 250)
.centerCrop()
.into(imageView);
container.addView(itemView);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((LinearLayout) object);
}
}