✨ Quick choose shadow mode
This commit is contained in:
parent
0f741b14fb
commit
c0662439da
|
@ -73,9 +73,9 @@ Widget reloadSwitchAddressSetting() {
|
||||||
return StatefulBuilder(
|
return StatefulBuilder(
|
||||||
builder: (BuildContext context, void Function(void Function()) setState) {
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: const Text("==== 分流 ===="),
|
title: const Text("分流同步"),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
String? choose = await chooseListDialog(context, "==== 分流 ====", [
|
String? choose = await chooseListDialog(context, "分流同步", [
|
||||||
"从服务器获取最新的分流地址",
|
"从服务器获取最新的分流地址",
|
||||||
"重制分流为默认值",
|
"重制分流为默认值",
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -53,3 +53,5 @@ IconButton chooseLayoutActionButton(BuildContext context) => IconButton(
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.view_quilt),
|
icon: const Icon(Icons.view_quilt),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const chooseListLayout = _chooseListLayout;
|
||||||
|
|
|
@ -79,3 +79,5 @@ Widget shadowCategoriesSetting() {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const chooseShadowCategories = _chooseShadowCategories;
|
||||||
|
|
|
@ -71,3 +71,14 @@ Widget shadowCategoriesModeSetting() {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget shadowSwitchActionButton(BuildContext context) {
|
||||||
|
return IconButton(
|
||||||
|
onPressed: () {
|
||||||
|
_chooseShadowCategoriesMode(context);
|
||||||
|
},
|
||||||
|
icon: const Icon(Icons.do_not_disturb_on_outlined),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const chooseShadowCategoriesMode = _chooseShadowCategoriesMode;
|
||||||
|
|
|
@ -16,6 +16,7 @@ import '../basic/config/IconLoading.dart';
|
||||||
import 'ComicsScreen.dart';
|
import 'ComicsScreen.dart';
|
||||||
import 'GamesScreen.dart';
|
import 'GamesScreen.dart';
|
||||||
import 'RandomComicsScreen.dart';
|
import 'RandomComicsScreen.dart';
|
||||||
|
import 'components/Common.dart';
|
||||||
import 'components/ContentLoading.dart';
|
import 'components/ContentLoading.dart';
|
||||||
import 'components/Images.dart';
|
import 'components/Images.dart';
|
||||||
|
|
||||||
|
@ -46,7 +47,7 @@ class _CategoriesScreenState extends State<CategoriesScreen> {
|
||||||
return AppBar(
|
return AppBar(
|
||||||
title: const Text('分类'),
|
title: const Text('分类'),
|
||||||
actions: [
|
actions: [
|
||||||
shadowCategoriesActionButton(context),
|
aPopMenu(context),
|
||||||
_searchBar.getSearchAction(context),
|
_searchBar.getSearchAction(context),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,6 +10,7 @@ import '../basic/Entities.dart';
|
||||||
import '../basic/config/IconLoading.dart';
|
import '../basic/config/IconLoading.dart';
|
||||||
import 'SearchScreen.dart';
|
import 'SearchScreen.dart';
|
||||||
import 'components/ComicPager.dart';
|
import 'components/ComicPager.dart';
|
||||||
|
import 'components/Common.dart';
|
||||||
import 'components/RightClickPop.dart';
|
import 'components/RightClickPop.dart';
|
||||||
|
|
||||||
// 漫画列表
|
// 漫画列表
|
||||||
|
@ -53,8 +54,7 @@ class _ComicsScreenState extends State<ComicsScreen> {
|
||||||
return AppBar(
|
return AppBar(
|
||||||
title: Text(categoryTitle(widget.category)),
|
title: Text(categoryTitle(widget.category)),
|
||||||
actions: [
|
actions: [
|
||||||
shadowCategoriesActionButton(context),
|
aPopMenu(context),
|
||||||
chooseLayoutActionButton(context),
|
|
||||||
_chooseCategoryAction(),
|
_chooseCategoryAction(),
|
||||||
_categorySearchBar.getSearchAction(context),
|
_categorySearchBar.getSearchAction(context),
|
||||||
],
|
],
|
||||||
|
|
|
@ -3,12 +3,12 @@ import 'package:flutter_search_bar/flutter_search_bar.dart';
|
||||||
import 'package:pikapika/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapika/basic/store/Categories.dart';
|
import 'package:pikapika/basic/store/Categories.dart';
|
||||||
import 'package:pikapika/basic/config/ListLayout.dart';
|
|
||||||
import 'package:pikapika/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapika/screens/components/RightClickPop.dart';
|
import 'package:pikapika/screens/components/RightClickPop.dart';
|
||||||
import '../basic/Entities.dart';
|
import '../basic/Entities.dart';
|
||||||
import '../basic/config/IconLoading.dart';
|
import '../basic/config/IconLoading.dart';
|
||||||
import 'components/ComicPager.dart';
|
import 'components/ComicPager.dart';
|
||||||
|
import 'components/Common.dart';
|
||||||
|
|
||||||
// 搜索页面
|
// 搜索页面
|
||||||
class SearchScreen extends StatefulWidget {
|
class SearchScreen extends StatefulWidget {
|
||||||
|
@ -50,8 +50,7 @@ class _SearchScreenState extends State<SearchScreen> {
|
||||||
return AppBar(
|
return AppBar(
|
||||||
title: Text("${categoryTitle(widget.category)} ${widget.keyword}"),
|
title: Text("${categoryTitle(widget.category)} ${widget.keyword}"),
|
||||||
actions: [
|
actions: [
|
||||||
shadowCategoriesActionButton(context),
|
aPopMenu(context),
|
||||||
chooseLayoutActionButton(context),
|
|
||||||
_chooseCategoryAction(),
|
_chooseCategoryAction(),
|
||||||
_searchBar.getSearchAction(context),
|
_searchBar.getSearchAction(context),
|
||||||
],
|
],
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../basic/config/ListLayout.dart';
|
||||||
|
import '../../basic/config/ShadowCategories.dart';
|
||||||
|
import '../../basic/config/ShadowCategoriesMode.dart';
|
||||||
|
|
||||||
|
Widget aPopMenu(BuildContext context) {
|
||||||
|
return PopupMenuButton<int>(
|
||||||
|
itemBuilder: (BuildContext context) => <PopupMenuItem<int>>[
|
||||||
|
const PopupMenuItem<int>(
|
||||||
|
value: 0,
|
||||||
|
child: ListTile(
|
||||||
|
leading: Icon(Icons.view_quilt),
|
||||||
|
title: Text("显示模式"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const PopupMenuItem<int>(
|
||||||
|
value: 1,
|
||||||
|
child: ListTile(
|
||||||
|
leading: Icon(Icons.do_not_disturb_on_outlined),
|
||||||
|
title: Text("封印模式"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const PopupMenuItem<int>(
|
||||||
|
value: 2,
|
||||||
|
child: ListTile(
|
||||||
|
leading: Icon(Icons.hide_source),
|
||||||
|
title: Text("封印列表"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
onSelected: (int value) {
|
||||||
|
switch (value) {
|
||||||
|
case 0:
|
||||||
|
chooseListLayout(context);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
chooseShadowCategoriesMode(context);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
chooseShadowCategories(context);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue