#java #android #android-studio #android-fragments
Вопрос:
Внутри фрагмента я хочу добавить жест броска, но я не знаю, почему он не обнаружен в приложении. Я использовал тост, так что по жесту броска я бы знал, но всплывающего окна нет.
мой фрагмент содержит вид переработчика и некоторые кнопки, которые выровнены по горизонтали в верхней части приложения.
Есть ли что-нибудь, чего мне не хватает или что нужно изменить, чтобы это работало ?
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view= inflater.inflate(R.layout.fragment_wallpaper,container,false);
//gesture logic;
final GestureDetector gesture = new GestureDetector(getActivity(),
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
final int SWIPE_MIN_DISTANCE = 120;
final int SWIPE_MAX_OFF_PATH = 250;
final int SWIPE_THRESHOLD_VELOCITY = 200;
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
amp;amp; Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(getActivity(), "right to left", Toast.LENGTH_SHORT).show();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
amp;amp; Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(getActivity(), "left to right", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
// nothing
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return gesture.onTouchEvent(event);
}
});
//end of gesture logic;
btncars=view.findViewById(R.id.btncars);
btn_nature=view.findViewById(R.id.btn_nature);
btn_travel=view.findViewById(R.id.btn_travel);
btn_bikes=view.findViewById(R.id.btn_bikes);
btn_wildlife=view.findViewById(R.id.btn_wildlife);
btncars.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent(getActivity(),cars.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivityForResult(intent,1);
}
});
return view;
}