ジェスチャーを使用してSnapChatのようなページをスワイプすることは可能ですか?私はこれのようなものを持っていますが、うまくいきません。もちろん、私はInterfaceとクラスを持っていますが、私はそれを実装する方法が分かりません。スワイプしながら、SnapChatのようなフォームの左側のページと右側のページをスワイプし、色の背景を変更したい。AndroidのXamarin.Formsジェスチャー
SwipeListener swipeListener = new SwipeListener(przeglad, this);
public void onLeftSwipe(View view)
{
if (view == przeglad)
{
Page ne = new SrchPage();
}
}
インタフェース:
public interface ISwipeCallBack
{
void onLeftSwipe(View view);
void onRightSwipe(View view);
void onTopSwipe(View view);
void onBottomSwipe(View view);
void onNothingSwiped(View view);
}
スワイプクラス:
public class SwipeListener : PanGestureRecognizer
{
private ISwipeCallBack mISwipeCallback;
private double translatedX = 0, translatedY = 0;
public SwipeListener(View view , ISwipeCallBack iSwipeCallBack)
{
mISwipeCallback = iSwipeCallBack;
var panGesture = new PanGestureRecognizer();
panGesture.PanUpdated += OnPanUpdated;
view.GestureRecognizers.Add(panGesture);
}
void OnPanUpdated(object sender, PanUpdatedEventArgs e)
{
View Content = (View)sender;
switch (e.StatusType)
{
case GestureStatus.Running:
try
{
translatedX = e.TotalX;
translatedY = e.TotalY;
}
catch (Exception err)
{
System.Diagnostics.Debug.WriteLine("" + err.Message);
}
break;
case GestureStatus.Completed:
System.Diagnostics.Debug.WriteLine("translatedX : " + translatedX);
System.Diagnostics.Debug.WriteLine("translatedY : " + translatedY);
if (translatedX < 0 && Math.Abs(translatedX) > Math.Abs(translatedY))
{
mISwipeCallback.onLeftSwipe(Content);
}
else if (translatedX > 0 && translatedX > Math.Abs(translatedY))
{
mISwipeCallback.onRightSwipe(Content);
}
else if (translatedY < 0 && Math.Abs(translatedY) > Math.Abs(translatedX))
{
mISwipeCallback.onTopSwipe(Content);
}
else if (translatedY > 0 && translatedY > Math.Abs(translatedX))
{
mISwipeCallback.onBottomSwipe(Content);
}
else
{
mISwipeCallback.onNothingSwiped(Content);
}
break;
}
}
}
XML:
<Grid RowSpacing="10" Padding="30" VerticalOptions="Center" x:Name="przeglad">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Button Grid.Row="2" Text="{resource:TranslateExtension Szukaj}"
BorderRadius="30"
BackgroundColor="#80FFFFFF"
FontSize="18"
TextColor="#330025"
BorderWidth="4"
BorderColor="#ffdbdb"
Clicked="Button_Clicked_1"
FontAttributes="Bold"/>
<Button Grid.Row="3" Text="{resource:TranslateExtension Mapa}"
BorderRadius="30"
BackgroundColor="#80FFFFFF"
FontSize="18"
TextColor="#330025"
BorderWidth="4"
BorderColor="#ffdbdb"
Clicked="Button_Clicked"
FontAttributes="Bold"/>
</Grid>
あなたは何を持っているのですか?それはコンパイルされますか?それはクラッシュしますか?もしそうなら、エラーまたは例外は何ですか?それが実行されている場合、それは正しいことは何ですか?シンプルなジェスチャーを実装するだけのコードがたくさんあるようです。 – Jason