LayeredLayoutを使用して、TextAreaをTextAreaの右上隅にある小さなボタンでオーバーレイしています(このボタンは、手動テキスト入力の日付を簡単にするためにタイムスタンプを挿入するために使用されます)。LayeredLayoutでレイアウトされた2つのコンポーネントが両方のイベントを受信できるようにするにはどうすればよいですか?
ユーザーが「クリック」したときに小さなボタンがイベントを受け取るようにし、下のTextAreaをクリックしてテキストを手動で編集できるようにします。しかし、LayeredLayoutを使用すると、最後に追加されたコンポーネントだけがイベントを受け取ります。つまり、textAreaだけがアクティブで、小さなボタンを押すことができないか、ボタンを押すことができますが、ユーザーはTextAreaをクリックして編集を開始できません。説明が理解できるほど明確であることを願っています。
私が見る限り、他の既存のレイアウトはどれもこのケースに向いていません。これを達成する方法はありますか?
おかげさまで、ご意見やご提案をありがとうございます。
(部分的に)私の悪いです。おそらく、ボタンをクリックすることができないため、textAreaを編集していたのですが、私は実験して、setFocusable(true)ボタンコンテナの文を追加しました。そして、私はトップレイヤーだけがイベントをつかむことを確認したこのページを見ました:http://stackoverflow.com/questions/25852251/codenameone-layered-layout。 – user1246562
挑戦はまだあなたが編集を開始するとき、ボタンが効果がなくなるのは非常に悪い人間工学(直感的ではない)です。しかし、おそらく解決策は、TextAreaを短くしてボタンを外側に置き、両方をTextArea UIIDのコンテナに入れてボタンがTextArea内にあるようにすることです。私はそれを試みます。 – user1246562
はい、有効な回避策です。テキスト入力はかなり特殊なケースです。私は、あなたのユースケースがエッジのXボタンであると仮定しています。これはプラットフォームによってアドレス指定されるべきであるため、ネイティブにコードネーム1に追加するRFEがあります。 –