예제 #1
0
        public void InitializeLayoutParadigm(View view)
        {
            primaryLibraryGridViewTop      = view.FindViewById <LibraryGridView>(Resource.Id.primaryLibraryGridView1);
            primaryLibraryGridViewBottom   = view.FindViewById <LibraryGridView>(Resource.Id.primaryLibraryGridView2);
            secondaryLibraryGridViewTop    = view.FindViewById <LibraryGridView>(Resource.Id.secondaryLibraryGridView1);
            secondaryLibraryGridViewBottom = view.FindViewById <LibraryGridView>(Resource.Id.secondaryLibraryGridView2);

            primaryLibraryTextView   = view.FindViewById <TextView>(Resource.Id.primaryLibraryTitle);
            secondaryLibraryTextView = view.FindViewById <TextView>(Resource.Id.secondaryLibraryTitle);

            Typeface face = Typeface.CreateFromAsset(Activity.Assets, "fonts/Roboto-Light.ttf");

            primaryLibraryTextView.SetTypeface(face, TypefaceStyle.Normal);
            secondaryLibraryTextView.SetTypeface(face, TypefaceStyle.Normal);

            ViewGroup primaryContainer   = (ViewGroup)primaryLibraryGridViewBottom.Parent;
            ViewGroup secondaryContainer = (ViewGroup)secondaryLibraryGridViewBottom.Parent;

            // Remove or keep views
            if (LibraryMode != Library.Bible)
            {
                primaryContainer.RemoveView(primaryLibraryGridViewBottom);
                secondaryContainer.RemoveView(secondaryLibraryGridViewBottom);

                if (LibraryMode == Library.Insight)
                {
                    secondaryContainer.RemoveView(secondaryLibraryGridViewTop);
                    secondaryContainer.RemoveView(secondaryLibraryGridViewBottom);
                    secondaryContainer.RemoveView(view.FindViewById <TextView>(Resource.Id.secondaryLibraryTitle));
                }
            }

            // Remove unwanted views
            primaryContainer.RemoveView(primaryLibraryTextView);
            secondaryContainer.RemoveView(secondaryLibraryTextView);

            secondaryContainer.RemoveView(secondaryLibraryGridViewTop);
            secondaryContainer.RemoveView(secondaryLibraryGridViewBottom);
            secondaryContainer.RemoveView(view.FindViewById <TextView>(Resource.Id.secondaryLibraryTitle));

            // Add click listener to gridviews if none
            primaryLibraryGridViewTop.ItemClick      += LibraryGridView_Click;
            primaryLibraryGridViewBottom.ItemClick   += LibraryGridView_Click;
            secondaryLibraryGridViewTop.ItemClick    += LibraryGridView_Click;
            secondaryLibraryGridViewBottom.ItemClick += LibraryGridView_Click;

            UpdateUI();
        }
예제 #2
0
 public LibraryGridViewListener(LibraryGridView paramLibraryGridView, int paramInt)
 {
     this.paramLibraryGridView = paramLibraryGridView;
     this.paramInt             = paramInt;
 }
예제 #3
0
        public void DoLayout(int w)
        {
            try
            {
                if (Device.RuntimePlatform == Device.Windows)
                {
                    FlowLayout_SizeChanged(HebrewFlowLayout, null);
                    FlowLayout_SizeChanged(GreekFlowLayout, null);

                    //Debug.WriteLine("REAL SIZE => " + App.GetRealSize(width));
                    //Debug.WriteLine("SIZE => " + width);

                    // ADJUST PADDING
                    if (w > 600)
                    {
                        LibraryGrid.Padding = new Thickness(40, 0, 40, 40);
                    }
                    else
                    {
                        LibraryGrid.Padding = new Thickness(15, 0, 15, 15);
                    }

                    // LAYOUT OF THE FLOWLAYOUTS
                    // STACK VERTICALLY
                    if (w < 1160)
                    {
                        VerticalLibraryGrid();
                    }
                    // STACK HORIZONTALLY
                    else if (w >= 1160 && w < 1565)
                    {
                        HorizontalLibraryGrid();
                    }
                    //STATIC COLUMN WIDTHS
                    else
                    {
                        LibraryGrid.ColumnDefinitions[0].Width = new GridLength(806);
                        LibraryGrid.ColumnDefinitions[1].Width = new GridLength(605);
                    }
                }
                else if (Device.RuntimePlatform == Device.iOS)
                {
                    FlowLayout_SizeChanged(HebrewFlowLayout, null);
                    FlowLayout_SizeChanged(GreekFlowLayout, null);

                    // ADJUST PADDING
                    if (Device.Idiom == TargetIdiom.Phone)
                    {
                        var p = App.GetRealSize(5);
                        LibraryGrid.Padding = new Thickness(p, 0, p, p);
                    }
                    else
                    {
                        var p = App.GetRealSize(10);
                        LibraryGrid.Padding = new Thickness(p, 0, p, p);
                    }

                    // LAYOUT OF THE FLOWLAYOUTS
                    // STACK HORIZONTALLY
                    if (Objects.Orientation.Landscape)
                    {
                        VerticalLibraryGrid();
                    }
                    // STACK VERTICALLY
                    else
                    {
                        VerticalLibraryGrid();
                    }
                }
                else if (Device.RuntimePlatform == Device.Android)
                {
                    // XFVisualTreeHelper.FindTemplateElementByName will not work with custom controls
                    ScrollView      mainScrollView   = XFVisualTreeHelper.FindTemplateElementByName <ScrollView>(this, "MainScrollView");
                    Grid            libraryGrid      = XFVisualTreeHelper.FindTemplateElementByName <Grid>(this, "LibraryGrid");
                    LibraryGridView hebrewFlowLayout = (LibraryGridView)XFVisualTreeHelper.FindTemplateElementByName <View>(this, "HebrewGridLayout");
                    LibraryGridView greekFlowLayout  = (LibraryGridView)XFVisualTreeHelper.FindTemplateElementByName <View>(this, "GreekGridLayout");
                    StackLayout     primary          = XFVisualTreeHelper.FindTemplateElementByName <StackLayout>(this, "Primary");
                    StackLayout     secondary        = XFVisualTreeHelper.FindTemplateElementByName <StackLayout>(this, "Secondary");

                    primary.HorizontalOptions   = LayoutOptions.CenterAndExpand;
                    secondary.HorizontalOptions = LayoutOptions.CenterAndExpand;

                    // ADJUST PADDING
                    if (w >= App.GetRealSize(500))
                    {
                        var p = App.GetRealSize(32) / 2;
                        mainScrollView.Padding = new Thickness(p, 0, p, p);
                    }
                    else
                    {
                        var p = App.GetRealSize(8) / 2;
                        mainScrollView.Padding = new Thickness(p, 0, p, p);
                    }

                    // LAYOUT OF THE FLOWLAYOUTS
                    // STACK VERTICALLY
                    if (w < 1160)
                    {
                        libraryGrid.ColumnDefinitions[0].Width = GridLength.Auto;
                        libraryGrid.ColumnDefinitions[1].Width = new GridLength(0);

                        libraryGrid.RowDefinitions[0].Height = GridLength.Auto;
                        libraryGrid.RowDefinitions[1].Height = GridLength.Auto;

                        Grid.SetRow(primary, 0);
                        Grid.SetColumn(primary, 0);

                        Grid.SetRow(secondary, 1);
                        Grid.SetColumn(secondary, 0);

                        libraryGrid.ColumnSpacing = 0;
                        libraryGrid.RowSpacing    = 0;
                    }
                    // STACK HORIZONTALLY
                    else
                    {
                        libraryGrid.ColumnDefinitions[0].Width = new GridLength(1, GridUnitType.Star);
                        libraryGrid.ColumnDefinitions[1].Width = new GridLength(.75, GridUnitType.Star);

                        libraryGrid.RowDefinitions[0].Height = GridLength.Auto;
                        libraryGrid.RowDefinitions[1].Height = new GridLength(0);

                        Grid.SetRow(primary, 0);
                        Grid.SetColumn(primary, 0);

                        Grid.SetRow(secondary, 0);
                        Grid.SetColumn(secondary, 1);

                        libraryGrid.ColumnSpacing = 16;
                        libraryGrid.RowSpacing    = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("EXCEPTION => " + ex.Message);
            }
        }