How to use swipe gesture in a view pager's page with android?

后端 未结 1 1632
滥情空心
滥情空心 2020-12-09 14:08

I need to take a view pager in an application which consist of three pages.

I am new to android view pager.

I have one view named TestSwipingView

1条回答
  •  醉酒成梦
    2020-12-09 14:22

    This is how I implemented it. It may give you some idea too.

    Step 1 : In my main activity, I have made my page adapter and called it in onCreate().

    public class SomeActivity extends FragmentActivity {
    
        WebView mWebView;
        private boolean mFromDropdown = false;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.tutorial_activity);
    
            Window window = getWindow();
            DisplayMetrics metrics = getResources().getDisplayMetrics();
            window.setGravity(Gravity.CENTER);
            int width = (int) (metrics.widthPixels * 1);
            int height = (int) (metrics.heightPixels * .85);
            window.setLayout(width, height);
    
            mFromDropdown = getIntent().getBooleanExtra("fromDropdown", false);
    
            MyPagerAdapter adapter = new MyPagerAdapter();
            ViewPager myPager = (ViewPager) findViewById(R.id.pager);
            myPager.setAdapter(adapter);
            myPager.setCurrentItem(0);
    
        }
    

    Step2: This is my Custom Adapter for your example:

    private class MyPagerAdapter extends PagerAdapter {
                public int getCount() {
                    return 3;
                }
    
                public Object instantiateItem(ViewGroup container, int position) {
                    LayoutInflater inflater = (LayoutInflater) container.getContext()
                            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
                    // Using different layouts in the view pager instead of images.
    
                    int resId = -1;
    
                           //Getting my layout's in my adapter. Three layouts defined.
                    switch (position) {
                    case 0:
                        resId = R.layout.tutorial1;
                        break;
                    case 1:
                        resId = R.layout.tutorial2;
                        break;
                    case 2:
                        resId = R.layout.tutorial3;
                        break;
    
                    }
    
                    View view = inflater.inflate(resId, container, false);
                    ((ViewPager) container).addView(view, 0);
                    return view;
                }
    
                @Override
                public void destroyItem(ViewGroup container, int position, Object object) {
                    container.removeView((View) object);
                }
    
                @Override
                public boolean isViewFromObject(View view, Object object) {
                    return view == object;
                }
    
            }
    
        }
    

    Step 3 : My Layouts:

    Main Layout :

    
    
    
        
    
            
        
    
        
        
    
    
    

    Layout to put inside the ViewPager in MainLayout:

    
    
        
    
            
    
                
    
                
            
    
            
    
            
        
    
    
    

    Layout to put inside the ViewPager in MainLayout:

    
    
        
    
            
    
                
    
                
    
                
    
              
            
    
    
        
        
    
    
    

    Hope this helps you..:)..Good Luck..:)

    0 讨论(0)
提交回复
热议问题