I'm trying to show/hide TextView. So if the user swipe left-to-right, it will show TextView from behind the "orange gradient view". And after the text shown, after 5 seconds, it will hiding it again like the picture below:
But i don't have any idea what the best practice to implement just like above. Please help.
Tap the settings icon. Tap General. Scroll down to Swipe actions at the bottom of the screen. Choose whether you want to Select, Complete or Schedule a task when swiping left or right.
you should use this: myText. setVisibility(View. INVISIBLE);
Here is the xml file
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_theme_sel_ll_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--Add your content here for texview and whatever -->
</LinearLayout>
Now use this class
import android.content.Context;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
/**
* This TouchListener is Using for very First time ThemeSelection Screen with SwipeLeft Finger
*/
public class OnSwipeTouchListener implements OnTouchListener {
private final GestureDetector gestureDetector;
public OnSwipeTouchListener(Context ctx) {
gestureDetector = new GestureDetector(ctx, new GestureListener());
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
private final class GestureListener extends SimpleOnGestureListener {
private static final int SWIPE_THRESHOLD = 1;
private static final int SWIPE_VELOCITY_THRESHOLD = 1;
@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) > Math.abs(diffY)) {
if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
if (diffX > 0) {
onSwipeRight();
} else {
onSwipeLeft();
}
}
result = true;
} else if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
if (diffY > 0) {
onSwipeBottom();
} else {
onSwipeTop();
}
}
result = true;
} catch (Exception exception) {
exception.printStackTrace();
}
return result;
}
}
public void onSwipeRight() {
}
public void onSwipeLeft() {
}
public void onSwipeTop() {
}
public void onSwipeBottom() {
}
}
In your MainActivity.java class use below code
//llMain is the root layout of your xml where you want to perform swipe
llMain.setOnTouchListener(new OnSwipeTouchListener(ThemeSelectionActivity.this) {
@Override
public void onSwipeLeft() {
super.onSwipeLeft();
}
}
@Override
public void onSwipeRight() {
super.onSwipeRight();
// Put your logic here for text visibility and for timer like progress bar for 5 second and setText
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With