問題タブ [itemrenderer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-flex - アイテムレンダラーの状態に基づいてリストの高さを減らす方法
予約枠のリストを表示する必要があります。したがって、スケジュールの 1 時間ごとに 10 分のスロットのセットがあります。要件は、8:00 と 9:00 の時間スロットで矢印ボタンをクリックすると、時間スロットのレイアウトが垂直リストから水平リストに変わることです。
このために、システムを次のようにモデル化しました。
ScheduleComponent ->(contains) -> List (Hours of schedule) HourViewComponent は Item Renderer であり、Slots List (8:00 時間のスロットのリスト) を使用して、利用可能な予定に基づいて 10 分のスロットを表示します。
スロット リストには、アイテム レンダラーとしてスロット ビュー コンポーネントがあります。
問題は、8:00 スロットをクリックすると、HourViewSlot を VerticalState から Horizontal 状態に変更できることです。ただし、コンテナの高さは最小化された状態で崩壊していません。縦置きレイアウトと同じサイズ!
variableRowHeight属性を使用してみました。
Item Rendererボタンの Click イベント HandlerでrowHeightを設定しようとしましたが、これによりすべての項目リストの行の高さが変更されます。現在の時間の高さだけを変更します。
List が使用するのに適切なコンポーネントであるかどうかはわかりません。助けてください。 リンクテキスト
apache-flex - ツリーアイテムを編集するときのOSのような動作!
Flexアプリケーション内にツリーコントロールがあり、ツリーアイテムをダブルクリックして編集します。プロパティdoubleClickEnabled="true"、doubleClick = "startEditMode()"、およびeditable="true"が見つかりました。これらの関数を使用すると、ダブルクリックを検出でき、ダブルクリックに基づいて編集可能なプロパティをtrueに変更できます。
問題は、アイテムをダブルクリックした後、実際に編集モードに入るにはもう一度クリックする必要があることです。それはまったく直感的ではないようです...
誰かがプログラムで追加のクリックを行うための解決策を思いついた:
私が抱えている問題は、clickedItemRendererをダブルクリックイベント(MouseEvent)から取得することです。どうやってやるの?ツリーオブジェクトをダブルクリックして編集モードに入るだけの別の解決策はありますか?
ヒントをありがとう!マーカス
apache-flex - FlexDataGridItemRendererの問題
1000を超えるデータセットで満たされたグリッドがあります。1つの列は、外部キーの値を表示するために使用されるカスタムitemRendererを使用します。
スクロールせずに表示されるすべてのデータセットは、正しい情報で表示されます。ただし、スクロールに関しては、一部のデータセットがitemRendererに間違った値を表示します。私が理解している限り、これはitemRenderersの再利用によるものです。
しかし、再利用することは素晴らしいかもしれませんが、間違った情報を表示することは結果にはなり得ません。では、どうすればこの問題を取り除くことができますか?
編集:私はこの問題をなんとか取り除くことができましたが、とにかく私の計画を示すためにいくつかのコードを投稿します:
不要なコードはすべて残しました...
上記のコードは機能し、間違ったデータを表示する問題を解決します。
この機能を実装する他のアイデアはありますか?
apache-flex - 選択したアイテムのitemRendererにアクセスする
サムネイル画像付きのTileListがあります。各サムネイル画像の下に、画像の名前を表示します。名前変更機能を構築したい。したがって、TileListの下には、[選択した画像の名前を変更]ボタンがあります。
このボタンをクリックすると、itemRendererコンポーネントの状態を変更したいと思います。画像の下のラベルがTextInputに変わり、ユーザーが新しい名前を入力できるようになります。これは、Windowsのファイル名変更機能によく似ています。
選択した画像のitemRendererにアクセスするにはどうすればよいですか?[名前の変更]ボタンのクリックイベントをリッスンするようにするにはどうすればよいですか?
いくつかのコード:
itemRendererは、mx:Imageとmx:Textを備えた単なるmx:VBoxです。mx:Textがmx:TextInputに変わる別のmx:Stateがあります。
apache-flex - Flex 3 で LIST コンテナーのデータ プロバイダーを設定する適切なポイント (ライフ サイクル ビューから) はいつですか
xml ファイルを表示するために、独自のアイテム レンダラーを使用して LIST コンテナーを作成しています。
今、public override function set data(value:Object):void
アイテム レンダラーでメソッドをオーバーライドしています。問題は、この関数が何度も呼び出されていることです (!!) (データ プロバイダーの長さを超えて)。
データプロバイダーを正しく設定していない可能性があります。これを行う方法は次のとおりです。
最初にバインド可能なプロパティを宣言します。
次に、LIST オブジェクトを作成します。
次に、xml を (urlLoader を使用して) ロードし、結果として次のことを行います。
XMLListCollection の構築は問題ありません (デバッグで確認できます)。
私は何を間違っていますか?????
みんなありがとう...
apache-flex - Flex 3 カスタム ItemRenderer とエディターの問題
UIComponent を拡張して IListItemRenderer を実装するカスタム ItemRenderer を作成しました。このレンダラーには、値を表示するための Text-Object が含まれています。
編集には、標準の ItemEditor (TextInput) を使用しています。
ここで、値を編集したいときにセルをクリックすると、エディターが作成されます。ただし、レンダラーで表示されていた値が表示される代わりに、「[object Object]」が表示されます。
誰かが理由を知っていて、ここで私を助けることができますか? すごいでしょう!
apache-flex - ListまたはDataGridコンポーネントのロールオーバーカラーを無効にする
リストベースのコンポーネントの一般的なFlexロールオーバーカラーを取り除き、独自のスタイルのロールオーバーレンダリングを表示したいと思います。
useRollOverを'false'に設定することはオプションではありません。これを無効にすると、List.isItemHighlighted()関数も常にfalseを返すようになるためです。私のカスタムレンダラーはその機能に依存しています。
そんなに大変なことはありますか?そのロールオーバーカラーを透明に設定する方法はありませんか?レンダラーがアイテムが強調表示されているかどうかを判断する他の方法はありますか?
ありがとう!
編集:もちろん、rollOverの色を「白」に設定し、alternateRowColorsを白に似たものに設定することもできます。浮気の種類:)
apache-flex - itemRenderer から dataGridColumn にアクセスするにはどうすればよいですか?
XMLList を表示している dataGrid の itemRenderer として、テキストに基づいたカスタム コンポーネントを使用しています。この itemRenderer を複数の列で再利用できるようにしたいのですが、どのフィールドをテキスト値に割り当てるかを知るために dataGridColumn にアクセスするにはどうすればよいですか?
super.data は XML アイテム全体を提供し、super.parentDocument は DataGrid 全体を提供します
前もって感謝します。
apache-flex - datagridのitemrendrerチェックボックス
データグリッドのitemRendrerでチェックボックスを無効としてクリックさせるにはどうすればよいですか?
apache-flex - すべてのアイテム レンダラーに commitProperties を強制しますか?
外部ソースの表示情報をチェックするアイテム レンダラーがあります。その情報が変更された場合は、すべてのアイテム レンダラー インスタンスに強制的にチェックさせたいと考えています。
リストまたはグリッド内のすべてのアイテム レンダラーに強制的にcommitProperties
他のメソッドを実行させる、または実行させる最善の方法は何ですか?
grid.itemRenderer
プロパティをリセットすると、それらがすべて初期化されることを読みました 。また、グリッドのすべての子を再帰的に反復処理し、
invalidateProperties
見つけたすべての UIComponents を呼び出すという提案も受け取りました。
何かご意見は?代替案?