scoped Action Sheetは複数の選択肢を表示するダイアログです。アプリのコンテンツ上に表示され、ユーザが手動で破棄しないとアプリの利用を再開することはできません。ios modeでは、破壊的な選択肢は明示されます(コンテンツの削除などは赤字などでわかりやすく表示されます)。Action Sheetを破棄するには、背景をタップする、デスクトップのパソコンの場合はエスケープキーを押すなど、複数の選択肢があります。
ion-action-sheet は、テンプレートに直接コンポーネントを記述することで使用することができます。これにより、アクションシートを表示するために配線する必要があるハンドラの数を減らすことができます。
ion-action-sheet の isOpen プロパティは、開発者がアプリケーションの状態からアクションシートの表示状態を制御することを可能にします。つまり、isOpenがtrueに設定されるとアクションシートが表示され、isOpenがfalseに設定されるとアクションシートは解除されます。
isOpen は一方通行のデータバインディングを使用しているため、アクションシートが終了したときに自動的に false に設定されることはありません。開発者は ionActionSheetDidDismiss または didDismiss イベントをリッスンして isOpen を false に設定する必要があります。この理由は、ion-action-sheet の内部がアプリケーションの状態と密接に結合するのを防ぐためです。一方通行のデータバインディングでは、アクションシートはリアクティブ変数が提供するブーリアン値だけを気にすればよい。一方通行のデータバインディングでは、アクションシートは、ブーリアン値とリアクティブ変数の存在の両方に関心を持つ必要があります。これは、非決定的な動作につながり、アプリケーションのデバッグを困難にします。
アクションシートの表示・非表示をより細かく制御したい場合は、actionSheetControllerを使用することができます。
Buttonの role プロパティは、 destructive か cancel のどちらかを利用できます。 roleプロパティがない場合は、プラットフォームに応じたデフォルトの外観となります。cancel role を持つButtonは、配列 buttons のどこに配置してもアクションシートの最下部に表示されます。 Note: destructive roleをつけるButtonは、一番上のButtonとして配置することをおすすめします。また、背景をタップしてアクションシートを破棄した場合、cancel role に設定されているhandlerが実行されます。
Buttonは ActionSheetButton の data プロパティを介してデータを渡すこともできます。これは onDidDismiss メソッドの戻り値にある data フィールドにデータを入力します。
didDismiss イベントが発生すると、イベント詳細の data と role フィールドを使用して、アクションシートがどのように却下されたかについての情報を収集することができます。
アクションシートはscopedによるカプセル化を採用しており、実行時に各スタイルにクラスを追加することで、自動的にCSSをスコープ化します。CSSでscopedセレクタをオーバーライドするには、higher specificity セレクタが必要です。
私たちは、 create メソッドで cssClass にカスタムクラスを渡し、それを使ってホストと内部要素にカスタムスタイルを追加することをお勧めします。このプロパティは、スペースで区切られた複数のクラスを受け付けることもできます。
.action-sheet-group { background : #e5e5e5 ; } .my-custom-class .action-sheet-group { background : #e5e5e5 ; } Copy CSSカスタムプロパティ は、個々の要素を対象とすることなく、アクションシートのスタイルに使用することができます。
アクションシートは、スクリーンリーダーにとって アクセシブル であるためにariaプロパティを設定しますが、これらのプロパティは、十分な説明になっていなかったり、アクションシートがアプリでどのように使用されているかに合っていなかったりする場合、オーバーライドすることができます。
アクションシートには role として dialog が設定されます。ARIA仕様に合わせるためには、aria-label属性かaria-labelledby属性のどちらかを設定しなければなりません。
Ionicは自動的にヘッダー要素を指すように aria-labelledby を設定するので、すべてのアクションシートには header プロパティを定義することを強く推奨します。しかし、headerを含めない場合は、htmlAttributesプロパティを使って、説明的なaria-labelを指定するか、カスタムのaria-labelledby値を設定することもできます。
Angular Javascript React Vue const actionSheet = await this . actionSheetController . create ( { htmlAttributes : { 'aria-label' : 'action sheet dialog' , } , } ) ; Copy const actionSheet = await this . actionSheetController . create ( { htmlAttributes : { 'aria-label' : 'action sheet dialog' , } , } ) ; Copy useIonActionSheet ( { htmlAttributes : { 'aria-label' : 'action sheet dialog' , } , } ) ; Copy const actionSheet = await actionSheetController . create ( { htmlAttributes : { 'aria-label' : 'action sheet dialog' , } , } ) ; Copy テキストを含むボタンはスクリーンリーダーによって読み取られる。ボタンがアイコンのみを含んでいる場合や、既存のテキスト以外の説明が必要な場合は、ボタンの htmlAttributes プロパティに aria-label を渡して、ラベルをボタンに割り当てる必要があります。
Angular Javascript React Vue const actionSheet = await this . actionSheetController . create ( { header : 'Header' , buttons : [ { icon : 'close' , htmlAttributes : { 'aria-label' : 'close' , } , } , ] , } ) ; Copy const actionSheet = await this . actionSheetController . create ( { header : 'Header' , buttons : [ { icon : 'close' , htmlAttributes : { 'aria-label' : 'close' , } , } , ] , } ) ; Copy useIonActionSheet ( { header : 'Header' , buttons : [ { icon : 'close' , htmlAttributes : { 'aria-label' : 'close' , } , } , ] , } ) ; Copy const actionSheet = await actionSheetController . create ( { header : 'Header' , buttons : [ { icon : 'close' , htmlAttributes : { 'aria-label' : 'close' , } , } , ] , } ) ; Copy interface ActionSheetButton < T = any > { text ? : string ; role ? : 'cancel' | 'destructive' | 'selected' | string ; icon ? : string ; cssClass ? : string | string [ ] ; id ? : string ; htmlAttributes ? : { [ key : string ] : any } ; handler ? : ( ) => boolean | void | Promise < boolean | void > ; data ? : T ; } Copy interface ActionSheetOptions { header ? : string ; subHeader ? : string ; cssClass ? : string | string [ ] ; buttons : ( ActionSheetButton | string ) [ ] ; backdropDismiss ? : boolean ; translucent ? : boolean ; animated ? : boolean ; mode ? : Mode ; keyboardClose ? : boolean ; id ? : string ; htmlAttributes ? : { [ key : string ] : any } ; enterAnimation ? : AnimationBuilder ; leaveAnimation ? : AnimationBuilder ; } Copy Description trueの場合、アクションシートはアニメーションを行います。Attribute animatedType booleanDefault true
Description trueの場合、バックドロップがクリックされるとアクションシートが解除されます。Attribute backdrop-dismissType booleanDefault true
Description アクションシートのボタンの配列です。 Attribute undefinedType (string | ActionSheetButton<any>)[]Default []
Description カスタムCSSに適用する追加のクラス。複数のクラスを指定する場合は、スペースで区切る必要があります。 Attribute css-classType string | string[] | undefinedDefault undefined
Description アクションシートの提示時に使用するアニメーションです。 Attribute undefinedType ((baseEl: any, opts?: any) => Animation) | undefinedDefault undefined
Description アクションシートのタイトルです。 Attribute headerType string | undefinedDefault undefined
Description アクションシートに渡す追加属性。 Attribute undefinedType undefined | { [key: string]: any; }Default undefined
Description trueの場合、アクションシートは開かれます。falseの場合、アクションシートは閉じます。プレゼンテーションの細かな制御が必要な場合はこれを使用し、そうでない場合は actionSheetController または trigger プロパティを使用します。注意: アクションシートが終了しても、isOpenは自動的にfalseに戻されません。あなたのコードでそれを行う必要があります。Attribute is-openType booleanDefault false
Description trueの場合、オーバーレイが表示されたときにキーボードが自動的に解除されます。Attribute keyboard-closeType booleanDefault true
Description アクションシートが解除されたときに使用するアニメーションです。 Attribute undefinedType ((baseEl: any, opts?: any) => Animation) | undefinedDefault undefined
Description modeは、どのプラットフォームのスタイルを使用するかを決定します。 Attribute modeType "ios" | "md"Default undefined
Description アクションシートのサブタイトルです。 Attribute sub-headerType string | undefinedDefault undefined
Description trueの場合、アクションシートは半透明になります。modeが "ios" で、デバイスが backdrop-filter をサポートしている場合にのみ適用されます。Attribute translucentType booleanDefault false
Description クリックするとアクションシートが開くトリガー要素に対応するID。 Attribute triggerType string | undefinedDefault undefined
Name Description didDismissアクションシートが解散した後に発行されます。ionActionSheetDidDismissの略記。 didPresentアクションシートが提示された後に発行されます。ionActionSheetWillDismissの略語。 ionActionSheetDidDismissアクションシートが解散した後に発行されます。 ionActionSheetDidPresentアクションシートが提示された後に発行されます。 ionActionSheetWillDismissアクションシートが解散する前に発行されます。 ionActionSheetWillPresentアクションシートが提示される前に発行されます。 willDismissアクションシートが解散する前に発行されます。ionActionSheetWillDismissの略記。 willPresentアクションシートが提示される前に発行されます。ionActionSheetWillPresentの略記。
Description アクションシートのオーバーレイが提示された後、それを解除します。 Signature dismiss(data?: any, role?: string) => Promise<boolean>
Description アクションシートが解散したときに解決するPromiseを返します。 Signature onDidDismiss<T = any>() => Promise<OverlayEventDetail<T>>
Description アクションシートが解散するタイミングを解決するPromiseを返します。 Signature onWillDismiss<T = any>() => Promise<OverlayEventDetail<T>>
Description アクションシートのオーバーレイを作成後に提示します。 Signature present() => Promise<void>
No CSS shadow parts available for this component.
Name Description --backdrop-opacity背景の不透明度 --backgroundアクションシートグループの背景 --button-backgroundアクションシートボタンの背景 --button-background-activatedアクションシートボタンが押されたときの背景。注意:これを設定すると、Material Designの波紋に干渉します。 --button-background-activated-opacityアクションシートボタンが押されたときの背景の不透明度 --button-background-focusedにタブしたときのアクションシートボタンの背景。 --button-background-focused-opacityにタブしたときのアクションシートボタンの背景の不透明度。 --button-background-hoverホバー時のアクションシートボタンの背景 --button-background-hover-opacityホバー時のアクションシートボタンの背景の不透明度 --button-background-selected選択したアクションシートボタンの背景 --button-background-selected-opacity選択されたアクションシートボタンの背景の不透明度 --button-colorアクションシートボタンの色 --button-color-activatedアクションシートボタンが押されたときの色 --button-color-focusedにタブで移動したときのアクションシートのボタンの色。 --button-color-hoverホバー時のアクションシートボタンの色 --button-color-selected選択されたアクションシートのボタンの色 --colorアクションシートテキストの色 --heightアクションシートの高さ --max-heightアクションシートの最大の高さ --max-widthアクションシートの最大幅 --min-heightアクションシートの最小高さ --min-widthアクションシートの最小幅 --widthアクションシートの横幅
No slots available for this component.