Note that there are some explanatory texts on larger screens.

plurals
  1. POleft/right and up/down swiping navigation
    primarykey
    data
    text
    <p>I am considering creating an Android app as part of a wider art project, and having no experience in Android development need to check if something is possible/feasible.</p> <p>It requires a very simple interface, navigating between several (15 - 20) pages containing images or text. The navigation needs to be left/right and up/down swiping.</p> <p>I have achieved a proof of concept (via copy/paste code from previous questions on the subject) in a very simple app using PagerAdapter/OnClickListener but this only does left/right switching.</p> <p>Is there a way of using this for up/down navigation between pages? Any help/advice would be greatly appreciated,</p> <pre><code>import android.content.Context; import android.content.Intent; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class MyPagerAdapter extends PagerAdapter { public int getCount() { return 5; } @Override public Object instantiateItem(View container, int position) { Context context = container.getContext(); LinearLayout layout = new LinearLayout(context); TextView textItem = new TextView(context); Button buttonItem = new Button(context); buttonItem.setText("Aceptar"); buttonItem.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("com.phone"); } }); switch (position) { case 0: textItem.setText("Photo 1 - begining"); break; case 1: textItem.setText("Photo 2"); break; case 2: textItem.setText("Photo 3"); break; case 3: textItem.setText("Photo 4"); break; case 4: textItem.setText("Photo 5 - end"); break; } layout.addView(textItem); ((ViewPager) container).addView(layout, 0); return layout; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView((View) arg2); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == ((View) arg1); } @Override public Parcelable saveState() { return null; } } </code></pre> <p>Here is the new code giving error </p> <blockquote> <p>The method onTouch(View, MotionEvent) is undefined for the type Object</p> </blockquote> <pre><code>import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; public class OnSwipeTouchListener implements OnTouchListener { private final GestureDetector gestureDetector = new GestureDetector(new GestureListener()); public boolean onTouch(final View view, final MotionEvent motionEvent) { super.onTouch(view, motionEvent); return gestureDetector.onTouchEvent(motionEvent); } private final class GestureListener extends SimpleOnGestureListener { private static final int SWIPE_THRESHOLD = 100; private static final int SWIPE_VELOCITY_THRESHOLD = 100; @Override public boolean onDown(MotionEvent e) { return true; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { boolean result = false; try { float diffY = e2.getY() - e1.getY(); float diffX = e2.getX() - e1.getX(); if (Math.abs(diffX) &gt; Math.abs(diffY)) { if (Math.abs(diffX) &gt; SWIPE_THRESHOLD &amp;&amp; Math.abs(velocityX) &gt; SWIPE_VELOCITY_THRESHOLD) { if (diffX &gt; 0) { onSwipeRight(); } else { onSwipeLeft(); } } } else { if (Math.abs(diffY) &gt; SWIPE_THRESHOLD &amp;&amp; Math.abs(velocityY) &gt; SWIPE_VELOCITY_THRESHOLD) { if (diffY &gt; 0) { onSwipeBottom(); } else { onSwipeTop(); } } } } catch (Exception exception) { exception.printStackTrace(); } return result; } } public void onSwipeRight() { } public void onSwipeLeft() { } public void onSwipeTop() { } public void onSwipeBottom() { } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload