下面内容的作用是对Android和Flutter布局上的构建差异,有一个整体的认识。
一、布局
Android:使用LinearLayout来使你的控件呈现水平或者垂直排列
Flutter:可以使用Row(水平)或者Column widget(垂直)来实现相同的结果
RelativeLayout:在Flutter中可以通过使用Column、Row和Stack的组合来实现RelativeLayout的效果
Widget自定义布局属性:在Fluttter中布局主要有专门设计用于提供的小部件定义,并且结合控制widget及其样式属性。列如,列和行widgets控制一个数组中的条目,并且分别垂直和水平对齐他们。Container widget控制一个布局的样式和属性,并且Center widget负责居中它的子widget。
Flutter在其核心widget库中提供了各种小部件。列如Padding,Align,Stack。
二、布局样式
当数据量大的时候用网格列表更清晰
Android:通过recyclerView实现
flutter:通过GridView实现,有四种;GridView()、GridView.count()、GridView.extent()适用于数据较少,提前将所有子widget都构建好了。当widge较多时使用GridView.builder()动态创建;
三、 滑动滚动
Android:滑动可以使用ScrollView,ScrollView允许包含一个子控件,以便于在设备的屏幕比控件内容小的情况下,使他们可以滚动。
Flutter:最简单的方法是使用ListView或者GridView。在Flutter中一个ListView即是一个ScrollerView,也是一个Android ListView。
四、动态更新ListView、GridView
Android:通过调用notifyDataSetChanged来更新列表。
Flutter:更新ListView一个简单的办法就是在setState()中创建一个新的List,并把旧的List的数据拷贝给新的list。大数据量时不建议这样做。
高效做法:使用 ListView.Builder 来构建列表。GridView也一样GridView.builder()构建