LoginSignup
3
0

More than 5 years have passed since last update.

PowerAppsで長押しを作る

Last updated at Posted at 2018-11-29

2018年11月29日時点では、PowerAppsに長押しにあたるアクションがありません。
長押しをしたいケースがいくつかあったので、コントロールを組み合わせて疑似的に実装することにしました。

(追記)2018年12月12日に状況が変わって、ボタンコントロールでPressedが使えるようになったようです。
https://powerusers.microsoft.com/t5/PowerApps-Ideas/Button-Pressed-trigger-an-action/idi-p/34397
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/controls/control-button
ということで、長押しはPressedを使ってください。
以下の対応は不要です。

作り方

スライダーを挿入し、プロパティを以下のように変更します。

Slider1
Default = 0
HandleSize = 1
Max = 1
Min = 0
OnChange = UpdateContext({isPressing:false})
OnSelect = UpdateContext({isPressing:true})
ShowValue = false

// 以下透明にするための設定
BorderColor = RGBA(0, 0, 0, 0)
BorderStyle = BorderStyle.None
DisabledBorderColor = RGBA(0, 0, 0, 0)
HandleFill = RGBA(0, 0, 0, 0)
RailFill = RGBA(0, 0, 0, 0)
ValueFill = RGBA(0, 0, 0, 0)

これでほぼ出来上がりです。
あとはボタンを挿入してスライダーの下に重なるように配置してください。

ボタンを長押しするとスライダーが反応します。
こんな感じなります。
長押し2.gif

解説

スライダーのOnSelectはスライダーを押した直後に反応するアクションになります。
またOnChangeは離したときに反応するアクションのようです。
この二つを利用して、押している間はisPressingがTrueになるようにしているだけになります。
また、MaxMinの差を1にしてHandleSizeを1にすることで、スライダーのほぼどこを触ってもOnChangeが発動するようになります。
さらに、スライダーの値が出ないようにShowValueはFalseにするとよいでしょう。

最後に、スライダーを隠すためすべての色を透明に設定します。
これで完成です。

PowerAppsは少しずつ改善されているのでそのうち長押しも標準で使えるようになるのかなぁと思ってます。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0