2017-01-19 12 views
1

明らかに、com.codename1.ui.Container.getComponentAt(int, int)メソッドは、どのコンポーネントがポインタイベントを処理するかを決定します。スクロール可能なコンテナのポインタに敏感なコンポーネント

com.codename1.ui.layouts.BoxLayout.Y_AXISContainerは、これらのボタンやその他のアクティブなコントロールの中の任意のコンポーネントで埋め尽くされ、スクロール可能なリストを作成するためには何が必要ですか?

com.codename1.ui.Container.getComponentAt(int, int)をオーバーライドする子孫を作成し、そのインスタンスを常に返し、すべてのポインタイベントを処理しながら子コンポーネントに渡すことを考えています。しかし、これが良いアイデアかどうかは疑問です。おそらく冒険的なものではない、あなたはどう思いますか?

答えて

0

ドラッグとスクロールを区別するのが難しいため、使い方の面で問題があると思います。

isDragAndDropOperationこれは、コンポーネント内の特定の領域が「グラバブル」であるかどうかを示すことができ、その領域にユーザーに通知するための特定の外観を与えることができます。

+0

コンテナインスタンス 'focusable'属性をtrueに設定すると、たとえば、ボタンをポイントしてドラッグしてもリストをスクロールできます。しかし、ボタンは発射されません。デフォルトでは、ボタンをドラッグするとコンテナをスクロールできません。私が望むのは、リスト内の任意のコンポーネントであり、それで動作するすべてのものが想定されています。しかし、明らかにこれは困難です。それとも私が逃した解決策はありますか? –

+0

一部のイベントは、コードネーム1のフォーカスコンポーネントにのみ送信されます。これはおそらくあなたがそれらを取得していない理由です。これはパフォーマンスの点で重要です。そうしないと、すべてのコンポーネントが多くの情報を処理する必要があります。すべての呼び出しを取得するFormのメソッドをオーバーライドすることでこれを達成できます。 –

関連する問題