Ejemplo n.º 1
0
        public void ShouldExpandAndCollapse()
        {
            var target = new ExpandableItem<string>( "test" );

            Assert.Equal( "test", target.Value );
            Assert.False( target.IsExpanded );
            Assert.PropertyChanged( target, "IsExpanded", () => target.IsExpanded = true );
            Assert.True( target.IsExpanded );

            target.Collapse.Execute( null );
            Assert.False( target.IsExpanded );

            target.Expand.Execute( null );
            Assert.True( target.IsExpanded );
        }
Ejemplo n.º 2
0
        private async Task AddContent(ExpandableItem expandableItem)
        {
            await Task.Run(() => {
                foreach (var item in ContentList)
                {
                    if (item.StyleId == "content_" + expandableItem._Key && item.Children.Count <= 0)
                    {
                        Device.BeginInvokeOnMainThread(() =>
                        {
                            item.Children.Add(expandableItem.Content);
                        });

                        break;
                    }
                }
            });
        }
Ejemplo n.º 3
0
        private void ContentLayout_SizeChanged(object sender, EventArgs e)
        {
            int itemIndex = Convert.ToInt32(((StackLayout)sender).StyleId.Split('_')[1]);

            ContentBackgroundImage.HeightRequest = ((StackLayout)sender).Height;
            // ExpandableItems.Find(f=>f._Key==itemIndex.ToString())._SubContainer.HeightRequest= ((StackLayout)sender).Height;
            if (Animating == false)
            {
                ExpandableItem expandableItem = ExpandableItems[itemIndex];
                expandableItem.ItemHeight = expandableItem._ContentLayout.Height;
                if (_ExpandModeExecutionCount < ExpandableItems.Count)
                {
                    switch (ExpandMode)
                    {
                    case ExpandModeEnum.CollapseAll:
                        expandableItem._ContentLayout.IsVisible = false;
                        expandableItem.Expanded = false;
                        break;

                    case ExpandModeEnum.ExpandAll:
                        expandableItem._ContentLayout.IsVisible = true;
                        expandableItem.Expanded = true;
                        break;

                    case ExpandModeEnum.UserDefined:
                        if (expandableItem.Expanded == false)
                        {
                            expandableItem._ContentLayout.IsVisible = false;
                            expandableItem.Expanded = false;
                        }
                        else
                        {
                            expandableItem._ContentLayout.IsVisible = true;
                            expandableItem.Expanded = true;
                        }
                        break;
                    }

                    _ExpandModeExecutionCount++;
                }
            }
        }
Ejemplo n.º 4
0
        public void EqualsShouldReturnExpectedResult()
        {
            var target = new ExpandableItem<string>( "test" );

            Assert.True( target == new ExpandableItem<string>( "test" ) );
            Assert.True( target != new ExpandableItem<string>( "test1" ) );
            Assert.True( target.Equals( new ExpandableItem<string>( "test" ) ) );
            Assert.False( target.Equals( new ExpandableItem<string>( "test1" ) ) );
            Assert.True( target.Equals( (object) new ExpandableItem<string>( "test" ) ) );
            Assert.False( target.Equals( (object) new ExpandableItem<string>( "test1" ) ) );

            target = new ExpandableItem<string>( "test", StringComparer.OrdinalIgnoreCase );

            Assert.True( target == new ExpandableItem<string>( "TEST" ) );
            Assert.True( target != new ExpandableItem<string>( "TEST1" ) );
            Assert.True( target.Equals( new ExpandableItem<string>( "TEST" ) ) );
            Assert.False( target.Equals( new ExpandableItem<string>( "TEST1" ) ) );
            Assert.True( target.Equals( (object) new ExpandableItem<string>( "TEST" ) ) );
            Assert.False( target.Equals( (object) new ExpandableItem<string>( "TEST1" ) ) );
        }
Ejemplo n.º 5
0
        private async void TitleBar_TapGestureRecognizer_Tapped(object sender, EventArgs e)
        {
            try
            {
                if (Animating)
                {
                    return;
                }
                StackLayout subContainer   = (StackLayout)((StackLayout)sender).Parent.Parent;
                int         itemIndex      = Convert.ToInt32(((StackLayout)sender).StyleId.Split('_')[1]);
                bool        ContentVisible = false;



                ExpandableItem expandableItem = ExpandableItems.Find(f => f._Key == itemIndex.ToString());
                ContentVisible = !expandableItem._ContentLayout.IsVisible;


                if (ContentVisible)
                {
                    await AddContent(expandableItem);

                    ShowExpandAnimation(expandableItem._ContentLayout);
                }
                else
                {
                    ShowCollapseAnimation(expandableItem._ContentLayout);
                }

                expandableItem.Expanded = ContentVisible;



                if (expandableItem.Expanded)
                {
                    expandableItem._TitleIcon.Source = ExpandImage;
                }
                else
                {
                    expandableItem._TitleIcon.Source = CollapseImage;
                }


                if (AutoCollapseInactiveItems)
                {
                    foreach (var item in ExpandableItems)
                    {
                        if (Convert.ToInt32(item._Key) != itemIndex)
                        {
                            item._ContentLayout.IsVisible = false;
                            item._TitleIcon.Source        = CollapseImage;
                            item.Expanded = false;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }