将下一个和上一个按钮添加到 ViewPager

Posted

技术标签:

【中文标题】将下一个和上一个按钮添加到 ViewPager【英文标题】:adding next and previous buttons to ViewPager 【发布时间】:2016-03-31 04:56:34 【问题描述】:

我想用 android Studio 制作一个图像滑块。 我找到了一个新的滑块代码,用ViewPager 构建,我试了一下并且工作了.. 但我想为下一个和上一个添加 2 个按钮..

当点击按钮时,必须跳转到下一张图片或上一张图片。

这里是mainactivity

package org.trial.slider;   
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;

public class MainActivity extends Activity 
    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
        ImageAdapter adapter = new ImageAdapter(this);
        viewPager.setAdapter(adapter);  
               

ImageAdapter.java 文件,

    package org.trial.slider;

    import android.content.Context;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.ImageView;

    /**
     * Created by ismail on 30.03.16.
     */
    public class ImageAdapter extends PagerAdapter 
        Context context;


        private int[] GalImages = new int[] 
                R.drawable.one,
                R.drawable.two,
                R.drawable.three
        ;
        ImageAdapter(Context context)
            this.context=context;
        
        @Override
        public int getCount() 
            return GalImages.length;
        

        @Override
        public boolean isViewFromObject(View view, Object object) 
            return view == ((ImageView) object);
        

        @Override
        public Object instantiateItem(ViewGroup container, int position) 
            ImageView imageView = new ImageView(context);
            int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium);
            imageView.setPadding(padding, padding, padding, padding);
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            imageView.setImageResource(GalImages[position]);
            ((ViewPager) container).addView(imageView, 0);
            return imageView;
        

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) 
            ((ViewPager) container).removeView((ImageView) object);
        
    

我有 2 个 XML 文件; fragment_pagerswipe_fragment

【问题讨论】:

【参考方案1】:
    添加按钮MainActivityactivity_main.xmlOnCreate() 中添加代码button.setonclicklister(this);

    此处的示例代码:

    @Override
    public void onClick(View v) 
        int id = v.getId();
        switch (id) 
            //prev button
            case R.id.btn_list_detail_img_prev:
                viewPager.setCurrentItem(mPager.getCurrentItem()-1,true);
                break;
            //nextbutton, 1st argument : pageindex, 2nd argument : Enable smooth 
            case R.id.btn_list_detail_img_next:
                viewPager.setCurrentItem(mPager.getCurrentItem()+1,true);
                break;
    
    

【讨论】:

【参考方案2】:

有一个方法名viewPager.setCurrentItem(position). 此方法将整数值作为索引,并使用此方法在 viewPager 对象上设置,如果分页器项,您可以更改位置。

【讨论】:

怎么样?你能解释一下吗? 您需要在布局中的视图寻呼机上方添加两个按钮 并检查viewpager在activity中的当前位置【参考方案3】:
class MyClass extends Fragment implements ViewPager.OnPageChangeListener 

    private int selectedViewPager = 0;

    public void onViewClicked(View view) 

        switch (view.getId()) 
            case R.id.backward:
                if (selectedViewPager > 0) 
                    viewPager.setCurrentItem(selectedViewPager - 1, true);
                
                break;

            case R.id.fwd:
                if (viewPager.getAdapter().getCount() > selectedViewPager) 
                    viewPager.setCurrentItem(selectedViewPager + 1, true);
                
                break;
        
    


    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) 

    

    @Override
    public void onPageSelected(int position) 
        selectedViewPager = position;
    

    @Override
    public void onPageScrollStateChanged(int state) 

    

【讨论】:

以上是关于将下一个和上一个按钮添加到 ViewPager的主要内容,如果未能解决你的问题,请参考以下文章

将下一个和上一个按钮添加到我的图像滑块

将下一个按钮添加到 php 分页脚本。它简短而简单

在模态中的wordpress帖子中添加下一个和上一个按钮

更改“光滑”滑块中的箭头按钮

colorbox:如何禁用下一个和上一个按钮

滚动库中的下一个和上一个按钮中的错误