AiForms.Effects
                                
                                
                                
                                    AiForms.Effects copied to clipboard
                            
                            
                            
                        AiForms.EffectsのFeedbackの動作について
Description
こんにちは。 AiFormsシリーズを使わせて頂いています。AndroidとiOSで開発を行っています。 AiForms.Dialogsでダイアログ内で、AiForms.Effectsを使用した場合のFeedbackの動作についてと、色々なコントローラーで使用した場合の動作を報告します。 すべてのコントローラーで使用したわけではなく、あくまで私の使用した範囲ですが。 先ずは、AiForms.Dialogsで使用した場合の方から。 ダイアログ内のButtonにef:Feedback.EnableSound="true"と追加し、タップしたら音を出す様にします。 Androidではボタンをタップすると音が出て、タップ状態になります。 iOSではタップ音はしますが、ボタンがタップ状態になりません(ボタンが押されない)。 Reproduceの方をご参照ください。
そのほか、こちらの環境ではNavigation.PushModalAsyncで生成されたページ内でFeedbackを使用した場合も上記と同様の結果になりました。
私はImageButtonを使って、フローティングボタンを表示させていますが(下記のコード)、同様に音のみでイベントが飛びません。
<!-- フローティングボタン -->
<ImageButton Grid.Row="1" BorderWidth="1" Source="icon_pencil_dark.png"
		BorderColor="Transparent" BackgroundColor="{StaticResource WriteEventButtonColor}"
                ef:Feedback.EnableSound="True" ef:Feedback.On="True"
                CornerRadius="23" WidthRequest="45" HeightRequest="45" Margin="0,0,15,38" HorizontalOptions="End" VerticalOptions="End"
                Command="{Binding RecordCommand}" />
それから、SettingsView内のCommandCellで使用した場合、イベントは飛びますがiOSでは音が出ません。
<sv:CommandCell Title="{Binding CareText}" TitleFontSize="Body" Height="40"
		TitleFontAttributes="Bold" Command="{Binding OnCareLabelTapped}"
                BackgroundColor="{AppThemeBinding Light={StaticResource ListBackgroundColor2Light},
                                  Dark={StaticResource ListBackgroundColor2Dark}}"
                TitleColor="{AppThemeBinding Light={StaticResource TextColorLight}, Dark={StaticResource TextColorDark}}"
                ef:Feedback.EnableSound="True" ef:Feedback.On="True" />
使い方の問題かもしれませんが、何か情報をいただきたくお願いします。
Steps to Reproduce
- AiForms.DialogのSampleプログラムのMyDialogView.xamlでbuttonにFeedbackを追加する。
 
<?xml version="1.0" encoding="UTF-8"?>
<extra:DialogView
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:extra="clr-namespace:AiForms.Dialogs.Abstractions;assembly=AiForms.Dialogs.Abstractions"
    xmlns:ef="clr-namespace:AiForms.Effects;assembly=AiForms.Effects"
    xmlns:sv="clr-namespace:AiForms.Renderers;assembly=SettingsView"
    x:Class="Sample.Views.MyDialogView"
    CornerRadius="10" OffsetX="{Binding OffsetX}" OffsetY="{Binding OffsetY}" UseCurrentPageLocation="{Binding IsPageLocation}"
    VerticalLayoutAlignment="{Binding VAlign}" HorizontalLayoutAlignment="{Binding HAlign}" >
    <!-- HeightRequest="{Binding VisibleContentHeight,Source={x:Reference Settings}}" -->
    <ContentView BackgroundColor="#CC9900" x:Name="container" Padding="12">
        <StackLayout WidthRequest="200" BackgroundColor="White" >
            <Label Text="{Binding Title}" TextColor="#FFBF00" HorizontalTextAlignment="Center" Margin="6" x:Name="title" />
            <Label Text="{Binding Description}" LineBreakMode="WordWrap" x:Name="desc"
                       TextColor="#666666" Margin="6" VerticalTextAlignment="Center"   />
            <StackLayout Orientation="Horizontal">
                <Button Text="Cancel" Clicked="Handle_Cancel_Clicked" TextColor="#FFBF00" 
                        ef:Feedback.EnableSound="True"
                        Padding="0" BackgroundColor="Transparent" HorizontalOptions="FillAndExpand"/>
                <Button Text="OK" Clicked="Handle_OK_Clicked" TextColor="#FFBF00" 
                        ef:Feedback.EnableSound="True"
                        Padding="0" BackgroundColor="Transparent" HorizontalOptions="FillAndExpand" />
            </StackLayout>
         </StackLayout>
    </ContentView>
    <!--<sv:SettingsView x:Name="Settings" WidthRequest="200"  HeaderHeight="30" RowHeight="40" HasUnevenRows="false"
         BackgroundColor="#EFEFEF" CellBackgroundColor="White">
        <sv:Section Title="1行に表示する教材の数" sv:RadioCell.SelectedValue="1">
            <sv:RadioCell Title="A" Value="1" />
            <sv:RadioCell Title="B" Value="2" />
            <sv:RadioCell Title="B" Value="3" />
        </sv:Section>
    </sv:SettingsView>-->
</extra:DialogView>
- Androidの実機、iOSの実機(iPhone)でプログラムを実行し、MainPage→DialogをタップしてDialogを表示させる。
 - Cancel又はOKをタップする。Androidの実機では音が出てDialogが消えるが、iOSの実機ではタップ音はするがボタンがタップされない(Dialogが消えない)。
 - 念のためにMyDialogView.xaml.csのHandle_OK_Clicked、Handle_Cancel_Clickedにブレークポイントを設定してイベントが飛ぶか確認したところ、iOSでは飛んでこない。
 
Expected Behavior
iOSでも、Androidと同じ音が出てDialogが消え、イベントが飛んでくる動作。
Actual Behavior
iOSの実機ではタップ音はするがボタンがタップされない。イベントも飛ばない。
Platforms
- [ ] Android 9
 - [ ] iOS 12.5.5, 13.3.1, 14.8.1, 15.0.1
 
Basic Information
- AiForms.SettingsView 1.3.29
 - AiForms.Dialogs 1.0.13
 - AiForms.Effects 1.6.11
 - Xamarin.Forms 5.0.0.2196, 5.0.0.2244
 - Android Support Library Version:
 - Affected Devices:iPhone Series
 
Workaround
無し