コレクションにバインドされたFrameLayoutに対してMvvmCrossデータバインディングを使用してこれを実装します。
メソッドのこのコアは、親内に保持されている親内の子のプロパティTranslationX
とプロパティを使用します。TranslationY
View
FrameLayout
親は:
<?xml version="1.0" encoding="utf-8"?>
<pointsongrid.BindableFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res/points.on.grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
local:MvxBind="ItemsSource Points"
local:MvxItemTemplate="@layout/item"/>
リストアイテムは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res/points.on.grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
local:MvxBind="TranslationX X, Converter=X;TranslationY Y, Converter=Y"
>
<LinearLayout
android:layout_width="20dp"
android:layout_height="20dp"
local:MvxBind="BackgroundColor Color, Converter=NativeColor"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
local:MvxBind="Text Player"
/>
</LinearLayout>
コード全体はStackOverflowにとって少し長いので、デモンストレーション用の簡単なリポジトリを投稿しました-https: //github.com/slodge/MvvmCross-Players-そこにあるデータバインドされたFrameLayoutは確かに改善される可能性があります-のLinearLayoutコードを見てくださいリストの変更のサポートが必要な場合のいくつかのアイデアのメインMvvmCrossリポジトリ(例:ObservableCollection)。
結果は次のようになります。