android-bindingを使ってみる その4

android-bindingを使ってみる、のとりあえず区切りです。
今回はGalleryを使います。
実装はこちら。
https://bitbucket.org/twopack/android-binding-sample/changeset/33c63d3b41e8

android-bindingのドキュメントに直接Galleryについての記載はありませんが、GalleryクラスはAdapterViewを継承していてこれについてはサポートしているのでListViewなどと同じように実装できます。
android-binding - Attributes that is (going) to be supported in Android Binding
Gallery | Android Developers


基本的に前回などにListViewで行ったのと同等の実装が可能です。
はまったところについて書いておきます。

項目のレイアウトが左寄せになる。

Galleryは選択されている項目はセンタリングされているものだと思っていたのに、なぜか左寄せに。。。
項目のレイアウトにLinerLayoutを含んでいたためでした。Galleryともandroid-bindingとも関係ないところでしたorz

selectedPositionが反映されない?

android-bindingでselectedPosition属性をバインドすると、選択されている項目の位置を取得できます。
onItemSelected属性のバインドを行って、選択項目が変わったときにその位置を表示するようなサンプルを作っていますが、selectedPositionをonItemSelected属性のInvoke()で確認すると値が更新されず、前の値のままでした。
このバインド自体はAdapterView.onItemSelected()へのバインドなので、Invoke()の引数で選択された位置を取得すればよかったようです。
bitbucketに登録したサンプルでは、この差が分かるように両方表示するようにしてあります。

コメント

Amazon ad