前回に引き続いて、IndicatorViewの検証。
今回は表示項目が多い場合(Count値が大きい場合)に、どんな表示になるのか検証してみた。
Count=2000とした場合
こちらはUWPの画面なのだが、インジケーター部の〇はCountの数だけ作られたっポイ。
デバッガで見ると、たくさんの〇(Shape)が作られたであろう感じに、メモリ消費量が大きくなったし、画面を最大化した時も、インジケーターは画面いっぱいに表示されていたので。
Androidも同様な表示で、画面いっぱいにインジケーターが表示されていた。
この状態で、Positionの位置を画面外の〇を示す番号にした場合、まあ当然画面外の〇を示すので選択された位置を示す〇は画面内にない。
上のはPositionを36にしたのだが、ちょうど右端の〇が35の場所なので、たぶんプログラム的には右端の右が選択色の〇になっているのだろう。
上の動作を見る限り、Countが大きい場合や、Positionの値が大きい場合、インジケーターとしての役割はあまり果たさない感じになってしまうのだろう。
MaximumVisibleについて
IndicatorViewにプロパティにMaximumVisibleがあるので、Countが大きい場合やPositionが大きい場合でも、これでもしかしたら何かしらいい感じに制御してくれるのかなと思い、ちょっと設定してみた。
MaximumVisibleの値を13に設定しCount=2000とした場合のUWPの表示は以下の様な感じ。
MaximumVisibleの値が効いていなかった。
ひとつ前の記事で調べたUWPでの描画処理IndicatorViewRenderer.csの中の実装でMaximumVisibleを考慮していなかったので、こうなるのは当たり前だったのだけど。
次にAndroidで調べてみた。
こちらは、MaximumVisibleの個数分だけインジケーターの〇が描画されていて、まずは期待通りの表示となった。
続いてPositionの値をMaximumVisible以上にした場合はどうなったか。
右端の〇が選択色になっただけ。これはPositionの値がMaximumVisible以上の値いずれでも同じ状態だった。
最後に
UWPとAndroidでのIndicatorViewについてはちょっとがっかり。
UWPでの描画バグはまあ置いておいて、使いどころとしてはCountが少ない場合や、Positionの値が小さい場合のみ利用するといった感じなのだろうか。
コメント