2016-08-02 6 views
0

私はこれが幾分基本的であれば私を許してくれますが、私の脳をグーグルで見つけ出して、これに対して良い答えを見つけることができませんでした...ListViewでImageCellを選択したときの素材デザインのアニメーション

私はマスターとして私のアプリの主なナビゲーションスキームを設定して、マスターのリストビューにバインドされたオブジェクトのTargetTypeプロパティに反映された詳細ページをロードします。基本的にはストレートMasterDetailページ用Xamarinのサンプルからそのように:

public class MasterPageItem 
    { 
     public string Title { get; set; } 
     public string IconSource { get; set; } 
     public Type TargetType { get; set; } 
    } 

    public MainMenu() 
    { 
     InitializeComponent(); 

     var masterPageItems = new List<MasterPageItem>(); 
     masterPageItems.Add(new MasterPageItem 
     { 
      Title = "Events", 
      IconSource = "Icon.png", 
      TargetType = typeof(MainPage) 
     }); 
     masterPageItems.Add(new MasterPageItem 
     { 
      Title = "Categories", 
      IconSource = "Icon.png", 
      TargetType = typeof(Categories) 
     }); 
     masterPageItems.Add(new MasterPageItem 
     { 
      Title = "Tags", 
      IconSource = "Icon.png", 
      TargetType = typeof(Tags) 
     }); 

     listView.ItemsSource = masterPageItems; 
    } 

    void OnItemSelected(object sender, SelectedItemChangedEventArgs e) 
     { 
      var item = e.SelectedItem as MasterPageItem; 
      if (item != null) 
      { 
       listView.SelectedItem = null; 

       var mdPage = this.Parent as MasterDetail; 
       mdPage.IsPresented = false; 

       mdPage.Detail = new NavigationPage((ContentPage)Activator.CreateInstance(item.TargetType)) 
       { 
        BarBackgroundColor = Color.FromHex("1976D2") 
       }; 
      } 
     } 

XAMLページ:

<ContentPage.Content> 
    <StackLayout VerticalOptions="FillAndExpand"> 
     <ListView x:Name="listView" VerticalOptions="FillAndExpand" SeparatorVisibility="None" ItemSelected="OnItemSelected"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
      <ImageCell ImageSource="{Binding IconSource}" Text="{Binding Title}" TextColor="White" Tapped="OnCellTapped" /> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
     </ListView> 
    </StackLayout> 
    </ContentPage.Content> 

私の目標は、のプレスにシンプルな材料設計型背景色のアニメーションを追加しようとすることですListViewアイテム(この例のように:http://thecodeplayer.com/walkthrough/ripple-click-effect-google-material-design)。

ImageCellクラスはIAnimatableを実装していないため、その要素のTappedイベントへのバインドは役に立たず、ListViewクラス自体はItemまたはRow要素のソートを実装していないようですそれ自体はアニメーション可能です。私が見る唯一のオプションは、実際に行うことができるListView全体をアニメーション化することですが、明らかに私が達成しようとしているものではありません。

ListItem自体にSelectedItemBackgroundColorプロパティまたは同等のものがないようですか?私は、これがクロスプラットフォームでは実行できず、プラットフォーム固有でなければならないというような、何かメジャーなものを見逃しているような気がしますが、それはXamarinの大きな監視のようです。

同様のUXを利用したいリストビューがいくつかありますので、どんな助けでも大歓迎です。

答えて

0

私はこれを試しましたが、AppCompatを使用するとデフォルトで波紋エフェクトが提供されるようです。このためMasterDetailPageサンプルが更新されていないため、おそらくそれが動作していないのでしょう。 AppCompatとMaterialデザインをForms Androidプロジェクトに追加するには、guideをチェックしてください。

関連する問題