Xamarin.Forms TableView — 静态单元格

写在前面:

在实际项目中,ListView 作为一个非常方便且使用率非常频繁的控件,非常适用于大量数据展示中,且 ListView 支持分组展示,自定义单元格样式,下拉刷新,单元格操作等功能,在实际项目中深受开发者的喜爱。但是对于少量数据进行分组展示时,使用 ListView 却导致 ItemsSource 的定义比较繁琐且效率不高,在 Xamarin.Forms 中同样提供了另一种控件 TableView 用于展示静态单元格内容,其在展示不常发生改变的内容上比 ListView 更为简洁明了,今天就给大家介绍下TableView

Xamarin.Forms TableView — 静态单元格_第1张图片

TableView

TableView 是一个不共享同一单元格模板,用于显示数据或功能选项的可滚动列表视图。 与 ListView 不同的是 TableView 不具有 ItemsSource 这个属性,因此,其所有展示数据源都必须手动在布局文件中添加。TableView 当以下情况下非常有用:

  • 显示一系列的设置 (如 App 中常见的设置页面大多都使用静态单元格形式)
  • 在窗体中收集数据或修改数据 (如 App 中常见的个人中心修改个人信息页面)
  • 不以行到行的形式展示数据 (例如数字、 百分比和图像)

TableView 处理滚动和布局中极具吸引力的部分中,针对上述情形,通常需要的行。 TableView 控件使用每个平台的基础等效的视图时可用,创建每个平台的本机外观。

TableView 结构

TableView 中的元素划分为部分:TableView 根目录是 TableRoot,其中包含一个或多个TableSections 子目录 :

  • C# Code
Content = new TableView {
    Root = new TableRoot {
        new TableSection...
    },
    Intent = TableIntent.Settings
};

每个 TableSectionTitle 和一个或多个 ViewCell 组成。 这里我们可以看到 TableSection 的构造函数中将 Title属性设置为 Ring

  • C# Code
var section = new TableSection ("Ring") { //TableSection constructor takes title as an optional parameter
    new SwitchCell {Text = "New Voice Mail"},
    new SwitchCell {Text = "New Mail", On = true}
};

若要在 XAML 中完成如上所示相同的布局:

  • XAML Code

    
        
            
      
        
    

Xamarin.Forms TableView — 静态单元格_第2张图片

Cells in TableView

TableViewListView 拥有完全相同的单元格样式,但是在TableViewSwitchCellEntryCell 使用更为频繁:

  • SwitchCell :一般用于展示以及切换 True / False 状态,同时还伴有文本说明。在允许消息通知,以及一些用户偏好设置时使用比较多。
  • EntryCell :一般用于展示以及修改用户数据,在常见用户信息修改和添加时使用。

同样 TableView 支持自定义 Cell 样式,你可以根据你想要的 UI 样式自定义布局。但是对于实际项目中大部分都是自定义 Cell 样式,所以这种情况下使用 TableView 上并不简单,But 有开源组件给我们提供了大量自定义 Cell 以供我们使用。

SettingsView

虽然 Xamarin.Forms TableView 很有用,但是没有足够的内置单元格。所以总是需要使用 ViewCell,但这会让应用程序性能变差。为了解决这个问题,SettingsView 制作了一些自定义本机单元格和一个自定义 TableView,可以有效地处理这些单元格。

Xamarin.Forms TableView — 静态单元格_第3张图片

Features

General

  • Separator Color
  • Selected Cell Color
  • Scroll To Top And Bottom

Sections

  • IsVisible
  • Footer
  • Various Properties Of Header And Footer
  • Enable DataTemplate and DataTemplateSelector

Cells

  • Icon Cached In Memory At All Cells
  • Enable Change Corner Radius of Icon
  • Various Defined Cells
  • Enable Xamarin.Forms.ViewCell and Other Cell

Cells in SettingsView

  • LabelCell
  • CommandCell
  • ButtonCell
  • SwitchCell
  • CheckboxCell
  • NumberPickerCell
  • TimePickerCell
  • DatePickerCell
  • TextPickerCell
  • PickerCell
  • EntryCell

How to Use

Install-Package AiForms.SettingsView
  • iOS Initialize
public override bool FinishedLaunching(UIApplication app, NSDictionary options) {
    global::Xamarin.Forms.Forms.Init();

    AiForms.Renderers.iOS.SettingsViewInit.Init(); //need to write here

    LoadApplication(new App(new iOSInitializer()));

    return base.FinishedLaunching(app, options);
}
  • Sample




    
        
        
        
        
        
    

    
        
        
        
        
        
    



  • App.xaml 中定义 SettingsView 样式:

    
        
            #FFBF00
            #E6DAB9
            #CC9900
            #F2EFE6
            #F2EDDA
            #555555
            #666666
            #999999
            12
            14
            17
            11

            
        
    

References

  • Tableview In Xamarin.Forms
  • AiForms.SettingsView
  • introduction-of-settingsview-for-xamarinform

到这里在 Xamarin.Forms TableView — 静态单元格 就介绍完了,希望能对您有所帮助。


——End 有问题可以加我微信,大家一起讨论,加好友前请备注您的简称,谢谢!

Xamarin.Forms TableView — 静态单元格_第4张图片

你可能感兴趣的:(Xamarin.Forms TableView — 静态单元格)