Explorar o código

Improvements to MobileAccordion Layout
Added configurable EmptyText to MobileList

Frank van den Bos hai 1 ano
pai
achega
5b67937757

+ 13 - 5
InABox.Mobile/InABox.Mobile.Shared/Components/MobileAccordion/MobileAccordion.xaml

@@ -4,6 +4,9 @@
              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
              xmlns:mobile="clr-namespace:InABox.Mobile;assembly=InABox.Mobile.Shared"
              x:Class="InABox.Mobile.MobileAccordion">
+    <ContentView.Resources>
+        <mobile:BooleanToColorConverter x:Key="BooleanToColorConverter" TrueColor="Gray" FalseColor="Transparent" />
+    </ContentView.Resources>
     <ContentView.Content>
         <StackLayout
             x:Name="_stack"
@@ -18,11 +21,16 @@
                         Orientation="Vertical"
                         Spacing="5"
                         BackgroundColor="Transparent"
+                        VerticalOptions="Fill"
+                        Margin="0"
+                        Padding="0"
                         >
                         
                         <mobile:MobileButton
                             MinimumHeightRequest="50"
                             HeightRequest="50"
+                            Margin="0,0,0,0"
+                            CornerRadius="5"
                             Text="{Binding Text}"
                             Tag="{Binding .}"
                             Clicked="Header_Clicked"
@@ -30,17 +38,17 @@
                         
                         <Frame
                             CornerRadius="5"
-                            BorderColor="Gray"
+                            Margin="0,0,0,0"
+                            BorderColor="{Binding FrameVisible, Converter={StaticResource BooleanToColorConverter}}"
                             BackgroundColor="Transparent"
                             Padding="0"
-                            HeightRequest="2000"
                             VerticalOptions="Fill"
+                            HeightRequest="2000"
                             HasShadow="False"
                             IsVisible="{Binding Visible}"
-                            IsClippedToBounds="True"
-                            >
+                            IsClippedToBounds="True">
                             <ScrollView>
-                                <ContentView Content="{Binding Content}"/>
+                                <ContentView Content="{Binding Content}" VerticalOptions="Fill"/>
                             </ScrollView>
                         </Frame>
                         

+ 1 - 1
InABox.Mobile/InABox.Mobile.Shared/Components/MobileAccordion/MobileAccordion.xaml.cs

@@ -13,7 +13,7 @@ namespace InABox.Mobile
     [XamlCompilation(XamlCompilationOptions.Compile)]
     public partial class MobileAccordion
     {
-
+        
         public MobileAccordionItem SelectedItem => Items.FirstOrDefault(x => x.Visible);
         
         public event EventHandler SelectionChanged;

+ 9 - 0
InABox.Mobile/InABox.Mobile.Shared/Components/MobileAccordion/MobileAccordionItem.cs

@@ -41,5 +41,14 @@ namespace InABox.Mobile
             set => SetValue(ButtonVisibleProperty, value);
         }
         
+        private static readonly BindableProperty FrameVisibleProperty =
+            BindableProperty.Create(nameof(FrameVisible), typeof(bool), typeof(MobileAccordion), true);
+        
+        public bool FrameVisible
+        {
+            get => (bool)GetValue(FrameVisibleProperty);
+            set => SetValue(FrameVisibleProperty, value);
+        }
+        
     }
 }

+ 1 - 1
InABox.Mobile/InABox.Mobile.Shared/Components/MobileList/MobileList.xaml

@@ -29,7 +29,7 @@
                     <CollectionView.EmptyView>
                         <ui:MaterialLabel 
                             x:Name="_emptylist"
-                            Text="No Data Available" 
+                            Text="{Binding EmptyText}" 
                             VerticalOptions="CenterAndExpand" 
                             VerticalTextAlignment="Center"
                             HorizontalOptions="CenterAndExpand"

+ 13 - 1
InABox.Mobile/InABox.Mobile.Shared/Components/MobileList/MobileList.xaml.cs

@@ -87,6 +87,18 @@ namespace InABox.Mobile
             }
         }
         
+        public static readonly BindableProperty EmptyTextProperty = BindableProperty.Create(
+            nameof(EmptyText), 
+            typeof(string), 
+            typeof(MobileList), 
+            "No Data Available");
+
+        public string EmptyText
+        {
+            get => (string)GetValue(EmptyTextProperty);
+            set => SetValue(EmptyTextProperty,value);
+        }
+        
         private void UpdateSummaryRow()
         {
             Device.BeginInvokeOnMainThread(() =>
@@ -97,7 +109,7 @@ namespace InABox.Mobile
                 int count = (ItemsSource as IList)?.Count ?? 0;
                 _numrecords.Text = $"{count} record{(count == 1 ? "" : "s")}";
                 _numrecords.IsVisible = ShowRecordCount && ItemsSource is IList;
-                _refreshcard.IsVisible = _lastupdate.IsVisible || _pulltorefresh.IsVisible || _numrecords.IsVisible;
+                _refreshcard.IsVisible = /*_lastupdate.IsVisible || */ _pulltorefresh.IsVisible || _numrecords.IsVisible;
                 _emptylist.IsVisible = !ShowRecordCount;
             });
         }