我正在尝试开发具有以下行为的 Android 图像翻转器。
- 活动开始时它会自动开始翻转(翻转间隔也已实现)。
- 用户还可以在翻转器中向右或向左滑动图像
- 用户应该能够单击特定图像并加载另一个活动
第 1 项,我可以毫无问题地成功实施。
问题是,我不能同时实现 2 和 3,因为在触发ListnerimageView.OnClickListner()
之前总是先出现。Flipper.OnTouch()
因此,滑动永远不会发生,但会立即加载新的活动。
如何在我的 Android 应用程序中同时实现所有 3 个要求?
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_home, container, false);
int sliderImgs[] = {R.drawable.slider_img_1, R.drawable.slider_img_1, R.drawable.slider_img_1};
viewFlipper = root.findViewById(R.id.img_slider);
mContext = this.getContext();
viewFlipper.setAutoStart(true);
viewFlipper.setFlipInterval(20000);
viewFlipper.setInAnimation(this.getContext(), R.anim.slide_in_right);
viewFlipper.setOutAnimation(this.getContext(), R.anim.slide_out_left);
viewFlipper.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(final View view, final MotionEvent event) {
detector.onTouchEvent(event);
return true;
}
});
for(int sliderImg:sliderImgs){
slideshowImages(sliderImg);
}
}
private void slideshowImages(int image){
ImageView imageView = new ImageView(this.getContext());
imageView.setBackgroundResource(image);
viewFlipper.addView(imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
View notificaionFragment = getLayoutInflater().inflate(R.layout.fragment_property_details, null);
BottomSheetDialog bottomSheetDialog = arrangeBottomSheet(notificaionFragment);
new Notification(notificaionFragment, mContext, getLayoutInflater(), bottomSheetDialog);
}
});
}