DataGrid の列のサイズを変更しようとすると、深刻な問題が発生します。私は1日以上それを続けてきましたが、起動するのに頭痛がして機知に富んでいます。
基本的に、内部に NavigatorContent の子を持つ TabNavigator コンポーネントがあります。NavigatorContent の子のそれぞれに、幅を 100% に設定する DataGrid があります (これは、ブラウザー ウィンドウのサイズ変更を処理できるようにするために必要です)。各タブの DataGrid としてIwo Banasの優れたフィルター可能な DataGrid を使用しています。
現在、各 DataGrid でいくつかの列を表示/非表示にしていますが、これは正常に機能しています。ただし、列幅が正しく設定されていないことがわかりました。(このコードを使用して) 列幅を設定するたびに、最近表示した列とそのすぐ左側の列を除いて、すべての列が正しい幅に設定されているように見えます。最近表示されたものは非常に小さく (幅を 30 に設定しましたが)、これらの列の左側にあるものは非常に大きくなっています (幅も 30 に設定しました)。
最初のDataGridは正常に動作するため、DataGridのライフサイクルに関係していると思います。他のタブをクリックすると、他の DataGrid の幅が正しく設定されていないことがわかります。
ただし、問題のある DataGrid の 1 つが「表示」され (つまり、画面に表示され)、列のサイズを変更するコードが再度実行されると、列のサイズは正しくなります。
以下にリストされている質問を含め、インターネット全体で推奨されている多くのことを試しましたが、役に立ちませんでした.
これは、列のサイズを変更するために使用しているコードです(この回答から取得)
public static function resizeColumn(col:DataGridColumn, size:int):void
{
var owner:* = col.mx_internal::owner
col.mx_internal::owner = null;
col.width = size;
col.mx_internal::owner = owner;
}
ありとあらゆる助けをいただければ幸いです。
私はすでに次の答えを見てきました。 Flex DataGrid の列幅: 1 つの列ですべてを支配する? Flex 3 DataGrid の列幅 問題 Flex DataGrid の列幅(<-- この回答が最も近い) フレックス データグリッドで列幅を動的に変更できない