Skip to content

Instantly share code, notes, and snippets.

@shaga
Created September 3, 2015 05:23
Show Gist options
  • Save shaga/2bc52b6d381b96d14f56 to your computer and use it in GitHub Desktop.
Save shaga/2bc52b6d381b96d14f56 to your computer and use it in GitHub Desktop.

base ListView

<ListView ItemsSource="{Binding Items}" HasUnevenRows="true">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <ViewCell.View>
                    <local:MyItemView Value="{Binding .}" />
                </ViewCell.View>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

MyItemView xaml

<ContentView>
    <StackLayout Orientation="Vertical">
        <Switch x:Name="DetailVisible" />
        <Label Text="Detail" IsVisible="{Binding IsToggled, Source={x:Reference DetailVisible}}" />
    </StackLayout>
</ContentView>

Androidで実行

ListViewの各行の高さは各項目のスイッチの状態(ラベルの表示状態)によって変更される。

iOSで実行

最初に表示された時の各行の高さで固定される。例えば、項目の1,3個目のスイッチがON(ラベル表示)、2,4個目のスイッチがOFF(ラベル非表示)という状態でListViewが初期化されると、ListViewの1行目、3行目はスイッチ+ラベルの高さ、2,4行目はスイッチのみの高さとなり、スイッチの状態を切り替えても各行の高さは変わらないので、1,3行目はスイッチをOFFにするとスイッチの下に空白が、2,4行目はラベルが隠れる、あるいは、その下の行に重なって見える形になる。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment