TitaniumのTableViewの中のImageViewの横幅が画面幅いっぱいにならなかったときの対策メモ
TableViewの中でリモートの画像を読み込むImageViewを画面幅いっぱいに表示しようとしたところ、どうにもこうにもランダムに画面幅にいっぱいにならず、両脇にスキマができるような状況が発生した。
発現パターンがつかめず、対応にあぐねていたところ、TableViewRowを追加すると、スキマの出てたRowがそのタイミングで両幅いっぱいにリサイズされる事に気づいた。※追加したタイミングでミューンと横幅いっぱいに伸びる。
このことから、リモートから画像を読み込んでRow幅を確定するタイミングと、TableView完成のタイミングのズレみたいなものが影響しているのではないか、と仮説をたて、であるならば、タイミングをずらしてRowを追加してやればスキマのできたRowを再度リサイズするトリガーを与えら得るのではないか、と。
で、どうやら、この仮説がヒットしたのでメモ。
_adjustTableViewWidth = -> c = Alloy.createController('contents_view/top/row') $.articleList.appendRow c.getView() $.articleList.deleteRow($.articleList.data[0].rowCount-1,{animationStyle:Titanium.UI.iPhone.RowAnimationStyle.NONE}) _doSearch = -> $.articleList.appendRow rows ~snip~ setTimeout( -> _adjustTableViewWidth() ,500)
このとおり、Rowの追加処理の0.5秒後に仮のRowを入れる。でそのままだと当然いらんものが画面に表示されるので即座に消す。という処理をいれた。
この現象で困ってない人はなんのことやらだろうけど、とにもかくにも現場的には救いのバッドノウハウイェー。
アイカツ!公式ファンブック 2014 STAGE (ステージ) 1 2013年 11月号 [雑誌]
- 出版社/メーカー: 小学館
- 発売日: 2013/10/10
- メディア: 雑誌
- この商品を含むブログ (2件) を見る