【Flutter Unit 重大更新 1 】超好用的組件收藏夾上線

重大更新篇是有重大功能支持是的相關文章,進行介紹,文尾會附帶這段時間的更新狀況git


前言

通過一週的更新,解決了很多bug, 感謝你們的支持,項目star個數也已破千
Flutter Unit 於今日上線一個重要的功能模塊組件收藏夾,絲滑的操做等你體驗。
歡迎star : github.com/toly1994328…github

FlutterUnit.apk 下載 Github倉庫地址

因爲數據庫變更,下載新版前,手機中若有舊版,請先卸載。 sql


1、收藏夾總體介紹

1. 收藏夾的操做

收藏夾設計的初衷是: Flutter中的組件很是多,分類頁並不明確
做爲集卡癖的我很想有個收藏的接口,讓我能自由收藏分類。
應用中默認給出了12種分類方式,也就是12個收藏夾,且210+組件已錄入相應收藏夾
固然你能夠自由的建立、修改、刪除它們。收藏集還能夠指定顏色用以區分。數據庫

添加收藏集 修改收藏集 刪除收藏集

2. 組件的收藏與取消操做

數據庫表採用widgetcategory一對多的結構,收錄組件。
在每一個詳情頁的右滑菜單中能夠查看當前組件的收藏信息,
點擊收藏夾名稱時時能夠切換該組件是否收錄。在收藏夾裏面能夠左滑刪除編程

刪除與數據同步 組件加入收藏集 收藏集支持多選

3.總體效果

對收藏夾頁面總體進行優化,效果以下,保留了默認收藏集。
點擊收藏夾會進入收藏的內容,每一個item也能夠點擊進入詳情頁。bash

滑動效果 長按右菜單滑頁 詳情內長按展現收藏菜單

4.彩蛋: 左右滑欄

不少朋友反映左右滑欄與系統的側滑返回衝突,因此特地設置了滑欄的小彩蛋
主頁長按底部左側按鈕可打開左側滑欄
主頁長按底部右側按鈕可打開右側滑欄 詳情頁長按頂部房子按鈕可打開右側滑欄微信

長按左菜單滑頁 長按右菜單滑頁 詳情內長按展現收藏菜單

2、收藏夾實現相關

1. 基於bloc 實現業務邏輯與界面的分離

  • 原始數據層面使用CategoryDao進行數據庫的交互,即增刪查改


  • CategoryRepository負責數據的存儲和操做接口,CategoryDbRepository爲數據庫資源實現方式
  • 這樣處理的好處是統一操做接口,將來若是使用線上數據,實現CategoryNetRepository便可,其餘總體邏輯不須要改變,即方便拓展。

abstract class CategoryRepository {
  //切換一個組件在收藏夾中的狀態
  Future<void> toggleCategory(int categoryId, int widgetId);

  // 檢查一個組件是否在收藏夾內
  Future<bool> check(int categoryId,int widgetId);

  // 獲取一個收藏夾中的全部組件
  Future<List<WidgetModel>> loadCategoryWidgets({int categoryId = 0});

  // 獲取全部收藏集
  Future<List<CategoryModel>> loadCategories();

  //添加收藏集
  Future<bool> addCategory(CategoryPo categoryPo);

  //更新收藏集
  Future<bool> updateCategory(CategoryPo categoryPo);
  
  //刪除收藏集
  Future<void> deleteCategory(int id);
  
  //查看某個組件在哪些收藏集中
  Future<List<int>> getCategoryByWidget(int widgetId);
}
複製代碼

  • CategoryBloc負責收藏夾自己的業務操做,根據事件返回狀態
  • CategoryWidgetBloc 負責收藏夾中組件的業務操做,根據事件返回狀態

  • 最後界面根據事件映射出的狀態進行顯示,便可。
  • 這裏涉及了不少狀態的同步,用bloc就很是方便。(不引戰,狀態管理工具你愛用啥用啥。)
  • 核心差很少也就這些,其餘的就是界面的設計,詳細的東西仍是本身看看源碼吧

2.收藏的表結構

category表widget表是相對獨立的,負責各自的信息記錄
經過category_widget表來建議一對多的關係,剩下的就是sql的能力了。工具


3、更新記錄 1

  • 2020-4-16
fixed " 修改樣式沒法點擊的問題。 fixed "     一些已知文案的錯誤。 
fixed " hero動畫閃現不一樣步問題。 複製代碼

  • 2020-4-17
fixed " 進入收藏頁,再回到首頁,頂部顯示不一樣步的問題。 fixed "     主頁item雙擊黑屏問題。 


feature " 支持詳情頁【相關連接的棧管理】, "   即: 點擊多個連接,不直接返回主頁.
複製代碼

  • 2020-4-18
feature " 小彩蛋: 【長按】底部欄【最左側按鈕】,打開左邊菜單欄 "   【長按】底部欄【最右側按鈕】,打開右邊菜單欄

fixed " 收藏集的AppBar背景色同主頁選中色。 複製代碼

  • 2020-4-19
optimize " 添加收錄【LayoutBuilder】組件 optimize "   添加收錄【IgnorePointer】組件
optimize " 添加收錄【AbsorbPointer】組件 optimize "   添加收錄【BackdropFilter】組件
複製代碼

  • 2020-4-21
feature " 使用Sliver優化收藏集的顯示 複製代碼

  • 2020-4-24
feature " 完成組件收藏夾功能 複製代碼

尾聲

歡迎Star和關注FlutterUnit 的發展,讓咱們一塊兒攜手,成爲Unit一員。
另外本人有一個Flutter微信交流羣,歡迎小夥伴加入,共同探討Flutter的問題,期待與你的交流與切磋。優化

@張風捷特烈 2020.04.024 未允禁轉
個人公衆號:編程之王
聯繫我--郵箱:1981462002@qq.com --微信:zdl1994328
~ END ~動畫

相關文章
相關標籤/搜索