Skip to content

Commit

Permalink
add article share function,uopdate theme change page,update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
maoqitian committed Mar 10, 2020
1 parent e668dfa commit e34512f
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 49 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ ios 下载| 暂无下载,可以自行clone项目编译体验
![image](https://github.com/maoqitian/MaoMdPhoto/raw/master/flutter/flutter_wanandroid/flutter-wanandroid%E7%BB%93%E6%9E%84%E5%9B%BE.jpg)
## 项目截图展示

### gif
### gif (debug 模式略显卡顿,可下载release版本体验丝滑顺畅)

<img src="https://github.com/maoqitian/flutter_wanandroid/raw/master/preview/showapp1.gif" height="300" width="170"><img src="https://github.com/maoqitian/flutter_wanandroid/raw/master/preview/showapp2.gif" height="300" width="170"><img src="https://github.com/maoqitian/flutter_wanandroid/raw/master/preview/showapp3.gif" height="300" width="170">

Expand Down Expand Up @@ -171,7 +171,9 @@ ios 下载| 暂无下载,可以自行clone项目编译体验
[flutter_staggered_grid_view](https://github.com/letsar/flutter_staggered_grid_view) | 瀑布流
[package_info](https://github.com/flutter/plugins) | 方便获取应用信息
[flutter_html](https://github.com/Sub6Resources/flutter_html) | 加载html 字符串

[expandable](https://github.com/aryzhov/flutter-expandable) | 扩展显示隐藏
[date_format](https://github.com/tejainece/date_format) | 日期转换
[share](https://github.com/flutter/plugins/tree/master/packages/share) | 分享
## 版本更新日志

### v1.0.2 (2020/03/08)
Expand Down
66 changes: 37 additions & 29 deletions flutter_wanandroid/lib/components/single_theme_color.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,47 +12,55 @@ import 'package:flutter_wanandroid/http/data_utils.dart';
import 'package:flutter_wanandroid/utils/tool_utils.dart';
import 'package:provider/provider.dart';


class SingleThemeColor extends StatelessWidget {

final int themeColor;
final String colorName;

const SingleThemeColor({Key key,this.themeColor, this.colorName}):
super(key:key);
const SingleThemeColor({Key key, this.themeColor, this.colorName})
: super(key: key);

@override
Widget build(BuildContext context) {
return InkWell(
onTap: ()async{
ToolUtils.showToast(msg: "改变主题颜色为"+colorName);
Provider.of<ThemeModel>(context,listen: false).changeTheme(this.themeColor,false);
dataUtils.setPrimaryColor(themeColor);
dataUtils.setIsDarkMode(false);
Navigator.pop(context);
onTap: () async {
ToolUtils.showToast(msg: "改变主题颜色为" + colorName);
Provider.of<ThemeModel>(context, listen: false)
.changeTheme(this.themeColor, false);
dataUtils.setPrimaryColor(themeColor);
dataUtils.setIsDarkMode(false);
Navigator.pop(context);
},
child: new Column( // 竖直布局
child: Column(
// 竖直布局
children: <Widget>[
Container(
width: 50,
height: 50,
margin: const EdgeInsets.all(5.0),
decoration: BoxDecoration( //圆形背景装饰
borderRadius:BorderRadius.all(
Radius.circular(50)
),
color: Color(this.themeColor)
),
),
Text(
colorName,
style: TextStyle(
color: Color(this.themeColor),
fontSize: 14.0),
),
Stack(
alignment: Alignment.center,
children: <Widget>[
Container(
width: 50,
height: 50,
margin: const EdgeInsets.all(5.0),
decoration: BoxDecoration(
//圆形背景装饰
borderRadius: BorderRadius.all(Radius.circular(50)),
color: Color(this.themeColor)),
),
//标识选中的主题颜色
Offstage(
offstage: dataUtils.getIsDarkMode() || dataUtils.getPrimaryColor() != themeColor,
child: Icon(
Icons.done,
color: Colors.white,
),
),
],
),
Text(
colorName,
style: TextStyle(color: Color(this.themeColor), fontSize: 14.0),
),
],
),
);
}
}

6 changes: 6 additions & 0 deletions flutter_wanandroid/lib/views/setting/about_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import 'package:flutter_wanandroid/res/colours.dart';
import 'package:flutter_wanandroid/routers/routes.dart';
import 'package:flutter_wanandroid/utils/tool_utils.dart';
import 'package:package_info/package_info.dart';
import 'package:share/share.dart';

class AboutPage extends StatefulWidget {
@override
Expand Down Expand Up @@ -44,6 +45,11 @@ class _AboutPageState extends State<AboutPage> {
return Scaffold(
backgroundColor: dataUtils.getIsDarkMode() ? Colours.dark_unselected_item_color : Color(0xFFEEEEEE),
appBar: AppBar(
actions: <Widget>[
IconButton(icon: Icon(Icons.share,color: Colors.white,),onPressed: (){
Share.share("https://github.com/maoqitian/flutter_wanandroid");
},),
],
leading: new IconButton(
icon: new Icon(
Icons.arrow_back,
Expand Down
54 changes: 38 additions & 16 deletions flutter_wanandroid/lib/views/web_page/controller/web_page_menu.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ import 'package:flutter/cupertino.dart';
/// User: maoqitian
/// Date: 2020/1/10 0010
/// email: maoqitian068@163.com
/// des:
/// des: WebPageMenu
import 'package:flutter/material.dart';
import 'package:flutter_wanandroid/utils/tool_utils.dart';
import 'package:flutter_wanandroid/model/route_page_data.dart';
import 'package:share/share.dart';
import 'package:webview_flutter/webview_flutter.dart';

const String kNavigationExamplePage = '''
Expand All @@ -27,16 +28,18 @@ The navigation delegate is set to block navigation to the youtube website.

enum MenuOptions {
reloadPage,
showUserAgent,
share,
/*showUserAgent,
listCookies,
clearCookies,
addToCache,
listCache,
clearCache,
clearCache,*/
}

class WebPageMenu extends StatelessWidget {
WebPageMenu(this.controller);
final RoutePageData routePageData;
WebPageMenu(this.controller,this.routePageData);

final Future<WebViewController> controller;
final CookieManager cookieManager = CookieManager();
Expand All @@ -50,10 +53,15 @@ class WebPageMenu extends StatelessWidget {
return PopupMenuButton<MenuOptions>(
onSelected: (MenuOptions value) {
switch (value) {
//webview 刷新
case MenuOptions.reloadPage:
_onReloadPage(controller.data, context);
break;
case MenuOptions.showUserAgent:
// share 分享
case MenuOptions.share:
_onSharePage(controller.data, context);
break;
/*case MenuOptions.showUserAgent:
_onShowUserAgent(controller.data, context);
break;
case MenuOptions.listCookies:
Expand All @@ -70,23 +78,21 @@ class WebPageMenu extends StatelessWidget {
break;
case MenuOptions.clearCache:
_onClearCache(controller.data, context);
break;
break;*/
}
},
itemBuilder: (BuildContext context) => <PopupMenuItem<MenuOptions>>[
PopupMenuItem<MenuOptions>(
value: MenuOptions.reloadPage,
enabled: controller.hasData,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(Icons.replay,color: Colors.grey,size: 25,),
SizedBox(width: 10.0),
Text('刷新页面')
],),
child: buildMenuItem("刷新页面",Icons.replay),
),
PopupMenuItem<MenuOptions>(
value: MenuOptions.share,
enabled: controller.hasData,
child: buildMenuItem("分享文章",Icons.share),
),
/*PopupMenuItem<MenuOptions>(
value: MenuOptions.showUserAgent,
child: const Text('Show user agent'),
enabled: controller.hasData,
Expand All @@ -110,7 +116,7 @@ class WebPageMenu extends StatelessWidget {
const PopupMenuItem<MenuOptions>(
value: MenuOptions.clearCache,
child: Text('Clear cache'),
),
),*/
],
);
},
Expand Down Expand Up @@ -197,4 +203,20 @@ class WebPageMenu extends StatelessWidget {
void _onReloadPage(WebViewController controller, BuildContext context) async{
controller.reload();
}

//页面刷新
void _onSharePage(WebViewController controller, BuildContext context) async{
Share.share(routePageData.url);
}

Widget buildMenuItem(String menuName,IconData iconData) {
return Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(iconData,color: Colors.grey,size: 25,),
SizedBox(width: 10.0),
Text(menuName)
],);
}
}
2 changes: 1 addition & 1 deletion flutter_wanandroid/lib/views/web_page/web_view_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class _WebViewPageState extends State<WebViewPage> {
),
actions: <Widget>[
NavigationControls(_controller.future,routePageData),
WebPageMenu(_controller.future)
WebPageMenu(_controller.future,routePageData)
],
),
body: Stack(children: <Widget>[
Expand Down
7 changes: 7 additions & 0 deletions flutter_wanandroid/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,13 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.5"
share:
dependency: "direct main"
description:
name: share
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.3+6"
shared_preferences:
dependency: "direct main"
description:
Expand Down
4 changes: 3 additions & 1 deletion flutter_wanandroid/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ description: A new Flutter application for wanandroid.
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.2+3 # 1.0.1 代表版本名 2 代表版本代号
version: 1.0.3+4 # 1.0.1 代表版本名 2 代表版本代号

environment:
sdk: ">=2.1.0 <3.0.0"
Expand Down Expand Up @@ -58,6 +58,8 @@ dependencies:
expandable: ^4.1.2
# data format
date_format: ^1.0.8
# share
share: ^0.6.3+6

dev_dependencies:
flutter_test:
Expand Down

0 comments on commit e34512f

Please sign in to comment.