【发布时间】:2016-07-11 10:02:50
【问题描述】:
我正在尝试将图像从 Horizontalscrollview 设置到 viewpager。
我无法获取要在 setcurrentItem 方法中使用的水平滚动视图的 ID。
我尝试了很多东西,但我做不到。
这里是 MainActivity 类
public class MainActivity extends AppCompatActivity {
int toplamSayfa = 5;
private View btnNext, btnPrev;
HorizontalScrollView hs;
ImageView imageView = null;
private Integer images[] = {R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e};
ViewPager viewPager;
LinearLayout myGallery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CustomPagerAdapter adapter = new CustomPagerAdapter(this, toplamSayfa);
myGallery = (LinearLayout) findViewById(R.id.container);
hs = (HorizontalScrollView) findViewById(R.id.scrollview);
viewPager = (ViewPager) findViewById(R.id.view_pager);
btnNext = findViewById(R.id.next);
btnPrev = findViewById(R.id.prev);
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(0);
btnPrev.setOnClickListener(onClickListener(0));
btnNext.setOnClickListener(onClickListener(1));
addImagesToThegallery();
}
private void addImagesToThegallery() {
final LinearLayout imageGallery = (LinearLayout) findViewById(R.id.container);
for ( Integer image : images) {
imageGallery.addView(getImageView(image));
}
}
private View getImageView(final Integer image) {
imageView = new ImageView(getApplicationContext());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 0, 10, 0);
imageView.setLayoutParams(lp);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//the method where i am stuck
viewPager.setCurrentItem();
}
});
imageView.setImageResource(image);
return imageView;
}
private View.OnClickListener onClickListener(final int i) {
return new View.OnClickListener() {
@Override
public void onClick(View v) {
if (i > 0) {
if (viewPager.getCurrentItem() < viewPager.getAdapter().getCount() - 1) {
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
}
} else {
if (viewPager.getCurrentItem() > 0) {
viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
}
}
}
};
}
}
【问题讨论】:
-
你为什么同时使用viewpager和horizontalscrollview?只使用ViewPager来分页图像。不需要使用scrollview。
-
你是对的,这是可能的。但只是尝试不同的东西:)
标签: android android-viewpager horizontalscrollview