저는 Xamarin을 사용하고 있으며 FrameLayout 만있는 Activity가 있습니다. 액티비티에는 ActionBar Tabs (이 링크의 도움으로 생성됨 : http://developer.xamarin.com/guides/android/user_interface/tab_layout/actionbar/)이 있습니다. 내 FrameLayout을 위에있는 작은 TextView와 나머지 화면의 ListView로 대체합니다.Xamarin GestureDetector OnFling 및 ListView
는 지금은 탭 사이에 슬쩍 할 수있는 능력을 갖고 싶어하고 나는이 링크에서 예를 찾을 : http://developer.xamarin.com/recipes/android/other_ux/gestures/create_a_gesture_listener/
문제는 그것은 단지 텍스트 뷰가 아닌 ListView를 스 와이프에 반응한다는 것입니다. 내 주요 활동에서
나는
private GestureDetector _gestureDetector;
private int SWIPE_MAX_OFF_PATH = 250;
private int SWIPE_MIN_DISTANCE = 120;
private int SWIPE_THRESHOLD_VELOCITY = 200;
를 선언 한 OnCreate에서 나는이있다 : 내 주요 활동에
_gestureDetector = new GestureDetector(this);
그리고 내 슬쩍 기능 : 나는 검색
public override bool OnTouchEvent(MotionEvent e)
{
_gestureDetector.OnTouchEvent(e);
return false;
}
public bool OnDown(MotionEvent e) {
return true;
}
public bool OnFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
try {
if (Math.Abs (e1.GetY() - e2.GetY()) > SWIPE_MAX_OFF_PATH) {
return false;
}
// right to left swipe, dvs gå till höger
if ((e1.GetX() - e2.GetX() > SWIPE_MIN_DISTANCE) && (Math.Abs (velocityX) > SWIPE_THRESHOLD_VELOCITY)) {
Toast.MakeText (this, "Left Swipe", ToastLength.Short).Show();
}
// left to right swipe, dvs gå till vänster
else if ((e2.GetX() - e1.GetX() > SWIPE_MIN_DISTANCE) && (Math.Abs (velocityX) > SWIPE_THRESHOLD_VELOCITY)) {
Toast.MakeText (this, "Right Swipe", ToastLength.Short).Show();
}
} catch (Exception ex) {
Console.WriteLine (ex.Message);
}
return true;
}
public void OnLongPress(MotionEvent e) {}
public bool OnScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}
public void OnShowPress(MotionEvent e) {}
public bool OnSingleTapUp(MotionEvent e) {
return false;
}
과 검색하지만 단지 C# 및 Xamarin으로 변환 할 수없는 Java 용 예제를 찾았습니다. 무엇을해야합니까? 더 많은 코드가 필요합니까?
스 와이프 건은 매력처럼 작동했지만, 당신이 말했듯이 약간의 버그가 있습니다. 예를 들어 오리엔테이션이 변경되는 동안 크래시가 발생하며 (GenericViewPagerFragment의 기본 생성자가 누락 됨) 수정할 수 없습니다. 또한 ActionBar에서 새로 고침 버튼을 사용하여 ListView를 업데이트하는 방법을 알지 못합니다. – hericson