将下一个和上一个按钮添加到 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_pager
和 swipe_fragment
【问题讨论】:
【参考方案1】:-
添加按钮
MainActivity
和activity_main.xml
在OnCreate()
中添加代码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的主要内容,如果未能解决你的问题,请参考以下文章