【问题标题】:How to use both GestureRecognizers and Effects in Xamarin Forms at the same time?如何在 Xamarin Forms 中同时使用 GestureRecognizers 和 Effects?
【发布时间】:2018-04-28 08:33:58
【问题描述】:

我在我的 StackLayout 中添加了一个点击手势识别器,我想在点击它时更改背景颜色,以便用户识别出布局已被点击

  <StackLayout.GestureRecognizers>
        <TapGestureRecognizer 
         Tapped="Preferences_Clicked"
         NumberOfTapsRequired="1"/>
  </StackLayout.GestureRecognizers>

我应该为此使用动画吗?

更新: 通过更改背景颜色,我的意思是一种效果,类似于高亮,就像您在 ListView 中选择一个项目时一样

【问题讨论】:

    标签: xamarin.forms effects


    【解决方案1】:

    使用此代码切换颜色

       int tapCount=0;
        void Preferences_Clicked(object sender, EventArgs args)
        {
            tapCount++;
            var stackLayout = (StackLayout)sender;
            if (tapCount % 2 == 0) {
                stackLayout.BackgroundColor  = Color.Default;
            } else {
                stackLayout.BackgroundColor  =  Color.Accent;
            }
        }
    

    【讨论】:

    • 谢谢,但抱歉我的问题不够清楚,我更新了我的问题
    • 您需要将所有布局设置为透明颜色并使用以下代码 ---- void ItemSelected( object sender, ItemTappedEventArgs args ) { if ( selected != null ) { selected.SetColors( false ) ; } selected = (list.SelectedItem as ModelClass);选定的.SetColors(真); }
    • 我没有列表,我有一个带有手势识别器的 stackLayout
    【解决方案2】:

    我可以找到我的答案,我只是在 Tapped 方法中添加了这段代码,得到了我想要的

        public async void Preferences_Clicked(object sender, EventArgs e)
        {
            const int _animationTime = 50;
            try
            {
                var layout = (StackLayout)sender;
                await layout.FadeTo(0.5, _animationTime);
                await layout.FadeTo(1, _animationTime);
            }
            catch (Exception ex)
            {
    
            }       
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      相关资源
      最近更新 更多