I created a view pager that controls four fragments. But I want to disabled swiping by finger. I want to lock swipe and use button click to navigate to the next fragment or previous fragment. But all my trial codes gotten from research proved wrong. Please how do I disable swiping completely and introduce a button to enable me to navigate to the
This is SimpleFragmentPageAdapter
public class SimpleFragmentPageAdapter extends FragmentPagerAdapter {
private String[] tabtitle=new String[]{"Page1","Page2","Page3","Page4",};
Context context;
private int pagecount=4;
public SimpleFragmentPageAdapter(FragmentManager fm, Context context) {
super(fm);
this.context=context;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0: //Fragment # 0 - This will show DevelopersFragment
return Page1Fragment.newInstance(0, "page # 0");
case 1: //Fragment # 0 - This will show Page1Fragment
return Page2Fragment.newInstance(1, "Page # 1");
case 2: //Fragment # 0 - This will show Page2Fragment
return Page3Fragment.newInstance(2, "Page # 2");
case 3: //Fragment # 0 - This will show Page3Fragment
return Page4Fragment.newInstance(3, "Page # 3");
default:
return null;
}
}
@Override
public int getCount() {
return pagecount;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return "woliwo" + position;
}
}
This is Main1Activity.java
public class Main1Activity extends AppCompatActivity {
Toolbar toolbar;
TabLayout tabLayout;
ViewPager viewPager;
Button Tips3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the start page passed to us or default to first page
Intent mIntent = getIntent();
int startPage = mIntent.getIntExtra("startPage", 0);
setContentView(R.layout.activity_main1);
toolbar = findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
viewPager.setAdapter(new SimpleFragmentPageAdapter(getSupportFragmentManager(), this));
// set the current page to the start page
viewPager.setCurrentItem(startPage);
//Attach the page change listener inside the activity
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
// This method will be invoked when a new page becomes selected
@Override
public void onPageSelected(int position) {
Toast.makeText(Main1Activity.this, "bool:" + position, Toast.LENGTH_SHORT).show();
}
// This method will be invoked when the current page is scrolled
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetpixels) {
}
// Called when the scroll state changes:
//SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING
@Override
public void onPageScrollStateChanged(int state) {
}
});
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
}
}
This is what I tried that gave 1% motion event disability
final View touchView = findViewById(R.id.view_pager);
touchView.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true;
}
});
This is the ViewPager class Main1Activity.java This below is how I did it and it show nothing please correct me
public class Main1Activity extends AppCompatActivity {
Toolbar toolbar;
TabLayout tabLayout;
ViewPager viewPager;
Button Tips3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
toolbar = findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
CustomViewPager viewPager = findViewById(R.id.view_pager);
viewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.tool_item_menu1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.item0:
Toast.makeText(this, "Home Selected", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Main1Activity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}