0
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

PowerAppsで長押しを作る

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は少しずつ改善されているのでそのうち長押しも標準で使えるようになるのかなぁと思ってます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?