- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难让以下内容起作用:我有一个水平 ScrollView ,其中放置了一个网格。我想让网格接收平移手势。
我的 XAML:
<ScrollView Orientation="Horizontal" VerticalOptions="Center">
<Grid RowSpacing="3" VerticalOptions="Center" BackgroundColor="Red" Padding="10">
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="party.png" Grid.Row="0" Grid.Column="0" WidthRequest="30" HeightRequest="30"></Image>
<Label Grid.Row="1" Grid.Column="0" HorizontalTextAlignment="Center" FontAttributes="Bold" Text="AUSGEHEN" TextColor="#646464" />
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="sep.png" Grid.RowSpan="2" Grid.Column="1" WidthRequest="1" HeightRequest="10"></Image>
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="contacts.png" Grid.Row="0" Grid.Column="2" WidthRequest="30" HeightRequest="30"></Image>
<Label VerticalTextAlignment="Start" HorizontalTextAlignment="Center" FontAttributes="Bold" Grid.Row="1" Grid.Column="2" Text="KONTAKTE" TextColor="#646464" />
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="sep.png" Grid.RowSpan="2" Grid.Column="3" WidthRequest="1" HeightRequest="10"></Image>
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="sports.png" Grid.Row="0" Grid.Column="4" WidthRequest="30" HeightRequest="30"></Image>
<Label VerticalTextAlignment="Start" HorizontalTextAlignment="Center" FontAttributes="Bold" Grid.Row="1" Grid.Column="4" Text="SPORT" TextColor="#646464" />
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="sep.png" Grid.RowSpan="2" Grid.Column="5" WidthRequest="1" HeightRequest="10"></Image>
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="dating.png" Grid.Row="0" Grid.Column="6" WidthRequest="30" HeightRequest="30"></Image>
<Label VerticalTextAlignment="Start" HorizontalTextAlignment="Center" FontAttributes="Bold" Grid.Row="1" Grid.Column="6" Text="DATING" TextColor="#646464" />
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="sep.png" Grid.RowSpan="2" Grid.Column="7" WidthRequest="1" HeightRequest="10"></Image>
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="culture.png" Grid.Row="0" Grid.Column="8" WidthRequest="30" HeightRequest="30"></Image>
<Label VerticalTextAlignment="Start" HorizontalTextAlignment="Center" FontAttributes="Bold" Grid.Row="1" Grid.Column="8" Text="KULTUR" TextColor="#646464" />
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="sep.png" Grid.RowSpan="2" Grid.Column="9" WidthRequest="1" HeightRequest="10"></Image>
<Image Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" Source="food.png" Grid.Row="0" Grid.Column="10" WidthRequest="30" HeightRequest="30"></Image>
<Label VerticalTextAlignment="Start" HorizontalTextAlignment="Center" FontAttributes="Bold" Grid.Row="1" Grid.Column="10" Text="ESSEN" TextColor="#646464" />
<Grid.GestureRecognizers>
<PanGestureRecognizer PanUpdated="OnPanUpdated" />
</Grid.GestureRecognizers>
</Grid>
</ScrollView>
问题是 ScrollView “吞没”了垂直滑动手势。这意味着水平滚动 ScrollView 时不会调用“OnPanUpdated”。如果我在不水平移动 ScrollView 的情况下小心地向上/向下滑动,则会调用“OnPanUpdated”。
我基本上想要实现的是,如果我在 ScrollView 内的网格上向上或向下滑动,则应该调用“OnPunUpdated”。如果我水平滑动,我希望 ScrollView 正常水平滚动。只要我一扫过它就调用“OnPunUpdated”,我就不会在意两者是否都被调用。
我尝试了几种适用于 Android 的自定义渲染器,但没有成功。
如果有人能抽出时间帮我解决问题,我将不胜感激。
注意:仅在 Android 上测试过。
最佳答案
there's a horizontal scrollview and I want to swipe it up with a pan gesture. when a user swipes left or right the scrollview should be triggered and when up or down the slide
你可以 create a Pan Container并将您的 ScrollView
放入此 Container
中:
public class PanContainer : ContentView
{
double x, y;
public PanContainer()
{
// Set PanGestureRecognizer.TouchPoints to control the
// number of touch points needed to pan
var panGesture = new PanGestureRecognizer();
panGesture.PanUpdated += OnPanUpdated;
GestureRecognizers.Add(panGesture);
}
void OnPanUpdated(object sender, PanUpdatedEventArgs e)
{
switch (e.StatusType)
{
case GestureStatus.Running:
// Translate and ensure we don't pan beyond the wrapped user interface element bounds.
Content.TranslationX = Math.Max(Math.Min(0, x + e.TotalX), -Math.Abs(Content.Width - App.ScreenWidth));
Content.TranslationY = Math.Max(Math.Min(0, y + e.TotalY), -Math.Abs(Content.Height - App.ScreenHeight));
break;
case GestureStatus.Completed:
// Store the translation applied during the pan
x = Content.TranslationX;
y = Content.TranslationY;
break;
}
}
}
在您的 .xaml
中:
<ContentPage.Content>
<local:PanContainer>
<ScrollView Orientation="Horizontal" VerticalOptions="Center">
...
</ScrollView>
</local:PanContainer>
</ContentPage.Content>
Effect .
关于android - Xamarin:Scrollview 中的 PanGestureRecognizer (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48513161/
是否可以为 PanGestureRecognizer 设置边框,使其只能在有限区域/ View 中平移图像? 非常感谢 ;) 最佳答案 您可以实现 UIPanGestureRecognizer 的委托
我想将 PanGestureRecognizer 添加到 UIViewController 的 UIView。我将 View 分成九个相等的部分,并由它们创建一个 UIViews。我还在每个部分添加了
我是一名新程序员,正在开发一个简单的演示 iOS 程序,我使用 SceneKit 来渲染场景。 我想旋转相机以查看场景的不同视角。但原来的相机控制有点棘手。特别是当我想朝一个方向旋转场景时。例如如果我
我正在使用 ios-charts库,当用户停止在图表上平移时,我需要做一些特殊的逻辑。该库将 panGestureRecognized 方法定义为 fileprivate,因此我无法子类化/覆盖它。它
我正在使用 pangesturerecognizer 在屏幕上移动对象。 如何为对象创建一个边界,使其不超过屏幕顶部的某个点?我正在考虑使用此 imageView.frame.origin.y > 0
我正在尝试将 seektotime 与 Pangesture 识别器一起使用。但它没有按预期进行搜索。 let totalTime = self.avPlayer.currentItem!.durat
我在 subview Controller 的容器 View 上设置了一个 PanGestureRecognizer 。这本质上是一个抽屉 View ,所以我希望 subview Controller
我刚刚开始为 tvOS 构建第一个应用程序,我对它的手势识别能力很好奇。 我的目标是了解手指在 Apple TV Remote 上滑动的方向和位移。 我知道如何检测点击或滑动,甚至是滑动的方向,但不知
我一直在寻找这个问题的解决方案,但没有找到。所以我在我的项目中使用 SWRevealViewController 作为侧边栏菜单,但我希望当用户开始从 View 的左边缘触摸时,侧边菜单会打开。我想要
我在 UIViewController 中有一个 UIScrollView,它由 segue 模态显示,另外一个 UIPanGestureRecognizer 确实关闭了 View Controlle
我正在 Xamarin.Forms(Android 和 iOS)中制作消息传递应用程序。 消息显示在 ListView 中。 现在我想添加一个新功能。当我将消息气球拖到一边时,它会显示消息信息。 用户
我目前有一个 panGesture 识别器附加到也启用了分页的 collectionView。 问题是 panGesture 覆盖了分页。如果可能的话,我希望在 panGesture 之前执行分页操作
我很难让以下内容起作用:我有一个水平 ScrollView ,其中放置了一个网格。我想让网格接收平移手势。 我的 XAML:
我有一个可滚动的 View ,我需要无需滚动主视图即可触发的手势识别器。 我用过这段代码: UISwipeGestureRecognizer *upRecognizer = [[UISwipe
当 touchesBegan() 时,我通过在手指位置创建一个 UIView 在屏幕上创建了一个圆圈: 在 ViewController 中: override func touchesBegan(t
我正在尝试使用 CGAffineTransform 旋转我拥有的 ImageView。基本上,我想要发生的是每次 x 坐标增加时,我希望 ImageView 旋转多一点。 我计算了一下,我希望 Ima
我正在尝试“裁剪”imageView 内的图像。裁剪的含义:如果用户向左平移,则图片将从右侧向左侧裁剪。因此,当用户平移到右侧时,图片将完全显示,如果用户平移到最左侧,图片将不可见。 我尝试了以下方法
我不想在我的应用程序中使用 SWRevealViewController,因为我按照给定链接“https://www.youtube.com/watch?v=5SUV1YY2yxQ”中的步骤进行操作。
我有 2 个 View 并使用以下代码检测它们的碰撞。如果物体移动缓慢,它工作正常,即它给出运动中的坐标。但是,当通过手势高速抛出 View 时,中间坐标会被忽略。我只得到初始坐标和结束坐标。当 2
我有一个带有 PanGestureRecognizer 的 UIImageView。当我拖到 ImageView 之外时,我想认为平移已结束,但显然 GestureRecognizer 继续触发,就好
我是一名优秀的程序员,十分优秀!