Quellcode durchsuchen

更新组件

tags/0.0.1
Weller vor 4 Jahren
Ursprung
Commit
345c0f8c39
20 geänderte Dateien mit 606 neuen und 85 gelöschten Zeilen
  1. +133
    -1
      .dart_tool/package_config.json
  2. +1
    -1
      example/android/app/build.gradle
  3. +85
    -0
      example/ios/Podfile.lock
  4. +80
    -4
      example/ios/Runner.xcodeproj/project.pbxproj
  5. +3
    -0
      example/ios/Runner.xcworkspace/contents.xcworkspacedata
  6. +8
    -0
      example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  7. +4
    -34
      example/lib/main.dart
  8. +3
    -0
      example/pubspec.yaml
  9. +60
    -12
      lib/pages/home_page.dart
  10. +63
    -0
      lib/pages/main_page.dart
  11. +6
    -2
      lib/register.dart
  12. +16
    -0
      lib/widgets/goods_list/goods_list.dart
  13. +72
    -0
      lib/widgets/goods_list/goods_list_creater.dart
  14. +0
    -14
      lib/widgets/home_banner.dart
  15. +30
    -0
      lib/widgets/home_banner/home_banner.dart
  16. +16
    -0
      lib/widgets/home_banner/home_banner_creater.dart
  17. +22
    -0
      lib/widgets/home_banner/home_banner_sk.dart
  18. +0
    -13
      lib/zhiying_base_widget.dart
  19. +3
    -0
      pubspec.yaml
  20. +1
    -4
      test/zhiying_base_widget_test.dart

+ 133
- 1
.dart_tool/package_config.json Datei anzeigen

@@ -25,12 +25,24 @@
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "cached_network_image",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/cached_network_image-2.2.0+1",
"packageUri": "lib/",
"languageVersion": "2.1"
},
{
"name": "charcode",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/charcode-1.1.2",
"packageUri": "lib/",
"languageVersion": "1.0"
},
{
"name": "clock",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/clock-1.0.1",
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "collection",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/collection-1.14.11",
@@ -67,18 +79,42 @@
"packageUri": "lib/",
"languageVersion": "2.4"
},
{
"name": "file",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/file-5.2.1",
"packageUri": "lib/",
"languageVersion": "2.2"
},
{
"name": "flutter",
"rootUri": "file:///Users/fnuser/Documents/flutter-sdk/packages/flutter",
"packageUri": "lib/",
"languageVersion": "2.2"
},
{
"name": "flutter_cache_manager",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/flutter_cache_manager-1.4.1",
"packageUri": "lib/",
"languageVersion": "2.6"
},
{
"name": "flutter_native_image",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/flutter_native_image-0.0.5+2",
"packageUri": "lib/",
"languageVersion": "1.19"
},
{
"name": "flutter_page_indicator",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/flutter_page_indicator-0.0.3",
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "flutter_swiper",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/flutter_swiper-1.1.6",
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "flutter_test",
"rootUri": "file:///Users/fnuser/Documents/flutter-sdk/packages/flutter_test",
@@ -97,6 +133,12 @@
"packageUri": "lib/",
"languageVersion": "2.7"
},
{
"name": "http",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/http-0.12.2",
"packageUri": "lib/",
"languageVersion": "2.4"
},
{
"name": "http_parser",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/http_parser-3.1.4",
@@ -109,6 +151,12 @@
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "intl",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/intl-0.16.1",
"packageUri": "lib/",
"languageVersion": "2.5"
},
{
"name": "matcher",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/matcher-0.12.6",
@@ -133,6 +181,30 @@
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "path_provider",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/path_provider-1.6.14",
"packageUri": "lib/",
"languageVersion": "2.1"
},
{
"name": "path_provider_linux",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/path_provider_linux-0.0.1+2",
"packageUri": "lib/",
"languageVersion": "2.1"
},
{
"name": "path_provider_macos",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/path_provider_macos-0.0.4+3",
"packageUri": "lib/",
"languageVersion": "2.1"
},
{
"name": "path_provider_platform_interface",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/path_provider_platform_interface-1.0.3",
"packageUri": "lib/",
"languageVersion": "2.1"
},
{
"name": "pedantic",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/pedantic-1.8.0+1",
@@ -145,18 +217,42 @@
"packageUri": "lib/",
"languageVersion": "2.4"
},
{
"name": "platform",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/platform-2.2.1",
"packageUri": "lib/",
"languageVersion": "1.24"
},
{
"name": "plugin_platform_interface",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/plugin_platform_interface-1.0.2",
"packageUri": "lib/",
"languageVersion": "2.1"
},
{
"name": "process",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/process-3.0.13",
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "quiver",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/quiver-2.0.5",
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "rxdart",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/rxdart-0.24.1",
"packageUri": "lib/",
"languageVersion": "2.6"
},
{
"name": "shimmer",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/shimmer-1.1.1",
"packageUri": "lib/",
"languageVersion": "1.20"
},
{
"name": "sky_engine",
"rootUri": "file:///Users/fnuser/Documents/flutter-sdk/bin/cache/pkg/sky_engine",
@@ -169,6 +265,18 @@
"packageUri": "lib/",
"languageVersion": "1.8"
},
{
"name": "sqflite",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/sqflite-1.3.1+1",
"packageUri": "lib/",
"languageVersion": "2.7"
},
{
"name": "sqflite_common",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/sqflite_common-1.0.2+1",
"packageUri": "lib/",
"languageVersion": "2.7"
},
{
"name": "stack_trace",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/stack_trace-1.9.3",
@@ -187,6 +295,12 @@
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "synchronized",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/synchronized-2.2.0",
"packageUri": "lib/",
"languageVersion": "2.6"
},
{
"name": "term_glyph",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/term_glyph-1.1.0",
@@ -199,18 +313,36 @@
"packageUri": "lib/",
"languageVersion": "2.2"
},
{
"name": "transformer_page_view",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/transformer_page_view-0.1.6",
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "typed_data",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/typed_data-1.1.6",
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "uuid",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/uuid-2.2.2",
"packageUri": "lib/",
"languageVersion": "2.2"
},
{
"name": "vector_math",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/vector_math-2.0.8",
"packageUri": "lib/",
"languageVersion": "2.0"
},
{
"name": "xdg_directories",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/xdg_directories-0.1.0",
"packageUri": "lib/",
"languageVersion": "2.3"
},
{
"name": "xml",
"rootUri": "file:///Users/fnuser/.pub-cache/hosted/pub.flutter-io.cn/xml-3.5.0",
@@ -230,7 +362,7 @@
"languageVersion": "2.1"
}
],
"generated": "2020-09-02T07:15:29.704979Z",
"generated": "2020-09-03T03:05:08.224004Z",
"generator": "pub",
"generatorVersion": "2.7.2"
}

+ 1
- 1
example/android/app/build.gradle Datei anzeigen

@@ -34,7 +34,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "cn.zhios.zhiying_base_widget_example"
minSdkVersion 16
minSdkVersion 19
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName


+ 85
- 0
example/ios/Podfile.lock Datei anzeigen

@@ -0,0 +1,85 @@
PODS:
- device_info (0.0.1):
- Flutter
- Flutter (1.0.0)
- flutter_native_image (0.0.1):
- Flutter
- fluttertoast (0.0.2):
- Flutter
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- package_info (0.0.1):
- Flutter
- path_provider (0.0.1):
- Flutter
- path_provider_linux (0.0.1):
- Flutter
- path_provider_macos (0.0.1):
- Flutter
- sqflite (0.0.1):
- Flutter
- FMDB (~> 2.7.2)
- zhiying_base_widget (0.0.1):
- Flutter
- zhiying_comm (0.0.1):
- Flutter

DEPENDENCIES:
- device_info (from `.symlinks/plugins/device_info/ios`)
- Flutter (from `Flutter`)
- flutter_native_image (from `.symlinks/plugins/flutter_native_image/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`)
- path_provider (from `.symlinks/plugins/path_provider/ios`)
- path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`)
- path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- zhiying_base_widget (from `.symlinks/plugins/zhiying_base_widget/ios`)
- zhiying_comm (from `.symlinks/plugins/zhiying_comm/ios`)

SPEC REPOS:
trunk:
- FMDB

EXTERNAL SOURCES:
device_info:
:path: ".symlinks/plugins/device_info/ios"
Flutter:
:path: Flutter
flutter_native_image:
:path: ".symlinks/plugins/flutter_native_image/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
package_info:
:path: ".symlinks/plugins/package_info/ios"
path_provider:
:path: ".symlinks/plugins/path_provider/ios"
path_provider_linux:
:path: ".symlinks/plugins/path_provider_linux/ios"
path_provider_macos:
:path: ".symlinks/plugins/path_provider_macos/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
zhiying_base_widget:
:path: ".symlinks/plugins/zhiying_base_widget/ios"
zhiying_comm:
:path: ".symlinks/plugins/zhiying_comm/ios"

SPEC CHECKSUMS:
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
flutter_native_image: 9c0b7451838484458e5b0fae007b86a4c2d4bdfe
fluttertoast: b644586ef3b16f67fae9a1f8754cef6b2d6b634b
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4
path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0
sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0
zhiying_base_widget: 00868c0d2723a3a425c18b27204fbc67e3f7e59d
zhiying_comm: 0daef4a480f4f4dbea3e11b615f3264aafea924b

PODFILE CHECKSUM: 3dbe063e9c90a5d7c9e4e76e70a821b9e2c1d271

COCOAPODS: 1.9.3

+ 80
- 4
example/ios/Runner.xcodeproj/project.pbxproj Datei anzeigen

@@ -7,6 +7,7 @@
objects = {

/* Begin PBXBuildFile section */
0AE1282E2855C01A7663C354 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A860D105A09AEA74261219D2 /* libPods-Runner.a */; };
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
@@ -40,6 +41,8 @@
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
3CF5E07C1CDF5F802B057127 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
5F28AF46041AA2464EF2701A /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
@@ -52,6 +55,8 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A860D105A09AEA74261219D2 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
E03B6CB558D0A26B049E0718 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
@@ -61,12 +66,24 @@
files = (
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
0AE1282E2855C01A7663C354 /* libPods-Runner.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
54EAFBD2C34CEC37432C9A9A /* Pods */ = {
isa = PBXGroup;
children = (
5F28AF46041AA2464EF2701A /* Pods-Runner.debug.xcconfig */,
3CF5E07C1CDF5F802B057127 /* Pods-Runner.release.xcconfig */,
E03B6CB558D0A26B049E0718 /* Pods-Runner.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -86,7 +103,8 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
CF3B75C9A7D2FA2A4C99F110 /* Frameworks */,
54EAFBD2C34CEC37432C9A9A /* Pods */,
EE1370F94952C6405CCA440D /* Frameworks */,
);
sourceTree = "<group>";
};
@@ -122,6 +140,14 @@
name = "Supporting Files";
sourceTree = "<group>";
};
EE1370F94952C6405CCA440D /* Frameworks */ = {
isa = PBXGroup;
children = (
A860D105A09AEA74261219D2 /* libPods-Runner.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
@@ -129,12 +155,14 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
1C1B5D3A7790D16656F17FFE /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
3DD5E1C6552F1CEFD4C31B18 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -156,6 +184,8 @@
TargetAttributes = {
97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1;
DevelopmentTeam = 3EC5G67BTK;
ProvisioningStyle = Manual;
};
};
};
@@ -192,6 +222,28 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
1C1B5D3A7790D16656F17FFE /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -206,6 +258,21 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
};
3DD5E1C6552F1CEFD4C31B18 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -311,7 +378,9 @@
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 3EC5G67BTK;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -323,8 +392,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = cn.zhios.zhiyingBaseWidgetExample;
PRODUCT_BUNDLE_IDENTIFIER = cn.shengfen.Fm;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = shengFenFMTest;
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
@@ -441,7 +511,9 @@
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 3EC5G67BTK;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -453,8 +525,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = cn.zhios.zhiyingBaseWidgetExample;
PRODUCT_BUNDLE_IDENTIFIER = cn.shengfen.Fm;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = shengFenFMTest;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
@@ -464,7 +537,9 @@
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 3EC5G67BTK;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -476,8 +551,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = cn.zhios.zhiyingBaseWidgetExample;
PRODUCT_BUNDLE_IDENTIFIER = cn.shengfen.Fm;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = shengFenFMTest;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;


+ 3
- 0
example/ios/Runner.xcworkspace/contents.xcworkspacedata Datei anzeigen

@@ -4,4 +4,7 @@
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

+ 8
- 0
example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist Datei anzeigen

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

+ 4
- 34
example/lib/main.dart Datei anzeigen

@@ -1,8 +1,7 @@
import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:zhiying_base_widget/zhiying_base_widget.dart';
import 'package:zhiying_base_widget/pages/home_page.dart';
import 'package:zhiying_base_widget/register.dart';

void main() => runApp(MyApp());

@@ -12,45 +11,16 @@ class MyApp extends StatefulWidget {
}

class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';

@override
void initState() {
super.initState();
initPlatformState();
}

// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
String platformVersion;
// Platform messages may fail, so we use a try/catch PlatformException.
try {
platformVersion = await ZhiyingBaseWidget.platformVersion;
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}

// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;

setState(() {
_platformVersion = platformVersion;
});
BaseWidgetRegister.init();
}

@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Text('Running on: $_platformVersion\n'),
),
),
home: HomePage(),
);
}
}

+ 3
- 0
example/pubspec.yaml Datei anzeigen

@@ -20,6 +20,9 @@ dev_dependencies:
zhiying_base_widget:
path: ../

zhiying_comm:
path: ../../zhiying_comm

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec



+ 60
- 12
lib/pages/home_page.dart Datei anzeigen

@@ -1,4 +1,7 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:zhiying_base_widget/pages/main_page.dart';
import 'package:zhiying_comm/zhiying_comm.dart';

class HomePage extends StatefulWidget {
@@ -9,21 +12,66 @@ class HomePage extends StatefulWidget {
}

class _HomePageState extends State<HomePage> {
int _currentIndex = 0;
List<String> _tab = List();
List<Widget> _contentWidgets = List();

@override
void initState() {
_tab.add('首页');
_tab.add('个人中心');
_contentWidgets = _tab.map((item) {
return PageFactory.create('mainPage', Map());
}).toList();
super.initState();
}

@override
Widget build(BuildContext context) {
print('home_page build');
return Scaffold(
appBar: AppBar(
title: Text('首页'),
),
body: Container(
width: double.infinity,
height: double.infinity,
child: Column(
children: <Widget>[
WidgetFactory.create('home_banner', Map<String, dynamic>())
],
body: IndexedStack(
index: _currentIndex,
children: _contentWidgets,
),
),
);
//底部导航栏
bottomNavigationBar: createBottomNavigationBar());
}

Widget createBottomNavigationBar() {
List<BottomNavigationBarItem> items = List<BottomNavigationBarItem>();

for (int i = 0; i < _tab.length; i++) {
items.add(BottomNavigationBarItem(
icon: Container(
width: 24,
height: 24,
margin: EdgeInsets.only(bottom: 4),
child: CachedNetworkImage(
imageUrl:
"http://www.hairuyi.com/Upload/slide/1594279903_1_0.png",
fit: BoxFit.fitWidth,
),
),
title: Text('tab2')));
}

if (items.length < 2) {
return Container();
}
return BottomNavigationBar(
backgroundColor: Colors.white,
type: BottomNavigationBarType.fixed,
selectedFontSize: 11,
unselectedFontSize: 11,
currentIndex: _currentIndex,
elevation: 0,
onTap: ((index) {
setState(() {
_currentIndex = index;
});
}),
//底部导航栏
items: items);
}
}

+ 63
- 0
lib/pages/main_page.dart Datei anzeigen

@@ -0,0 +1,63 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:zhiying_comm/zhiying_comm.dart';

class MainPage extends StatefulWidget {
MainPage({Key key}) : super(key: key);

@override
_MainPageState createState() => _MainPageState();
}

class _MainPageState extends State<MainPage> {
WidgetType _type = WidgetType.skeleton;

@override
void initState() {
_reload();
super.initState();
}

void _reload() {
setState(() {
_type = WidgetType.skeleton;
});
Future.delayed(Duration(seconds: 3), () {
setState(() {
_type = WidgetType.normal;
});
});
}

List<Widget> _createContent() {
List<Widget> list = List();
list.add(SliverToBoxAdapter(
child: RaisedButton(
onPressed: _reload,
child: Text('重置'),
),
));
list.addAll(
WidgetFactory.create('home_banner', type: _type, isSliver: true));
list.addAll(
WidgetFactory.create('home_goods', type: _type, isSliver: true));
list.addAll(
WidgetFactory.create('home_goods', type: _type, isSliver: true));
list.addAll(
WidgetFactory.create('home_goods', type: _type, isSliver: true));
return list;
}

@override
Widget build(BuildContext context) {
print('build');
return Scaffold(
backgroundColor: Color(0xfff9f9f9),
body: SafeArea(
child: Container(
child: CustomScrollView(
slivers: _createContent(),
))),
);
}
}

+ 6
- 2
lib/register.dart Datei anzeigen

@@ -1,4 +1,6 @@
import 'package:zhiying_base_widget/widgets/home_banner.dart';
import 'package:zhiying_base_widget/pages/main_page.dart';
import 'package:zhiying_base_widget/widgets/goods_list/goods_list_creater.dart';
import 'package:zhiying_base_widget/widgets/home_banner/home_banner_creater.dart';
import 'package:zhiying_comm/zhiying_comm.dart';
import 'package:zhiying_base_widget/pages/home_page.dart';

@@ -12,10 +14,12 @@ class BaseWidgetRegister {
// 注册页面
static void registPage() {
PageFactory.regist('homePage', (model) => HomePage());
PageFactory.regist('mainPage', (model) => MainPage());
}

// 注册控件
static void registWidgets() {
WidgetFactory.regist('home_banner', (model) => HomeBanner());
WidgetFactory.regist('home_banner', HomeBannerCreater());
WidgetFactory.regist('home_goods', GoodsListCreater());
}
}

+ 16
- 0
lib/widgets/goods_list/goods_list.dart Datei anzeigen

@@ -0,0 +1,16 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class GoodsList extends StatefulWidget {
GoodsList({Key key}) : super(key: key);

@override
_GoodsListState createState() => _GoodsListState();
}

class _GoodsListState extends State<GoodsList> {
@override
Widget build(BuildContext context) {
return Container();
}
}

+ 72
- 0
lib/widgets/goods_list/goods_list_creater.dart Datei anzeigen

@@ -0,0 +1,72 @@
import 'package:flutter/material.dart';
import 'package:zhiying_comm/zhiying_comm.dart';

class GoodsListCreater extends WidgetCreater {
@override
List<Widget> createWidgets(Map<String, dynamic> model) {
return [
_createHeader(),
_createBody(),
];
}

@override
List<Widget> createSkeleton(Map<String, dynamic> model) {
return [];
}

Widget _createHeader() {
return SliverPersistentHeader(
pinned: true,
floating: false,
delegate: MySliverPersistentHeaderDelegate(),
);
}

Widget _createBody() {
// return SliverGrid(
// gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
// crossAxisCount: 3, crossAxisSpacing: 5, mainAxisSpacing: 3),
// delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
// return Container(
// color: Colors.primaries[index % Colors.primaries.length],
// );
// }, childCount: 20),
// );

return SliverList(
delegate: SliverChildListDelegate(List<Widget>.generate(30, (index) {
return Container(
width: double.infinity,
height: 60,
color: Colors.primaries[index % Colors.primaries.length],
);
})));
}

@override
bool isSliverChild() {
return true;
}
}

class MySliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate {
@override
Widget build(
BuildContext context, double shrinkOffset, bool overlapsContent) {
return Container(
color: Colors.red,
alignment: Alignment.center,
child: Text('222222', style: TextStyle(color: Colors.white)));
}

@override
double get maxExtent => 100.0;

@override
double get minExtent => 100.0;

@override
bool shouldRebuild(SliverPersistentHeaderDelegate oldDelegate) =>
false; // 如果内容需要更新,设置为true
}

+ 0
- 14
lib/widgets/home_banner.dart Datei anzeigen

@@ -1,14 +0,0 @@
import 'package:flutter/material.dart';

class HomeBanner extends StatelessWidget {
const HomeBanner({Key key}) : super(key: key);

@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: 200,
color: Colors.redAccent,
);
}
}

+ 30
- 0
lib/widgets/home_banner/home_banner.dart Datei anzeigen

@@ -0,0 +1,30 @@
import 'package:flutter/material.dart';
import 'package:zhiying_comm/zhiying_comm.dart';
import 'package:flutter_swiper/flutter_swiper.dart';

class HomeBanner extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: 200,
child: Swiper(
itemBuilder: (BuildContext context, int index) {
// return new Image.network(
// "http://via.placeholder.com/350x150",
// fit: BoxFit.fill,
// );
return Container();
},
itemCount: 3,
pagination: new SwiperPagination(),
control: new SwiperControl(),
onTap: (index) {
Map<String, dynamic> model = Map();
model['name'] = '123';
RouterUtil.route(model, context);
},
),
);
}
}

+ 16
- 0
lib/widgets/home_banner/home_banner_creater.dart Datei anzeigen

@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
import 'package:zhiying_base_widget/widgets/home_banner/home_banner.dart';
import 'package:zhiying_base_widget/widgets/home_banner/home_banner_sk.dart';
import 'package:zhiying_comm/zhiying_comm.dart';

class HomeBannerCreater extends WidgetCreater {
@override
List<Widget> createSkeleton(Map<String, dynamic> model) {
return [HomeBannerSkeleton()];
}

@override
List<Widget> createWidgets(Map<String, dynamic> model) {
return [HomeBanner()];
}
}

+ 22
- 0
lib/widgets/home_banner/home_banner_sk.dart Datei anzeigen

@@ -0,0 +1,22 @@
import 'package:flutter/material.dart';
import 'package:shimmer/shimmer.dart';

class HomeBannerSkeleton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: 200,
child: Shimmer.fromColors(
baseColor: Colors.grey[300],
highlightColor: Colors.grey[100],
child: Container(
margin: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(10))),
),
),
);
}
}

+ 0
- 13
lib/zhiying_base_widget.dart Datei anzeigen

@@ -1,13 +0,0 @@
import 'dart:async';

import 'package:flutter/services.dart';

class ZhiyingBaseWidget {
static const MethodChannel _channel =
const MethodChannel('zhiying_base_widget');

static Future<String> get platformVersion async {
final String version = await _channel.invokeMethod('getPlatformVersion');
return version;
}
}

+ 3
- 0
pubspec.yaml Datei anzeigen

@@ -11,6 +11,9 @@ dependencies:
flutter:
sdk: flutter

shimmer: ^1.1.1
flutter_swiper : ^1.1.6

dev_dependencies:
flutter_test:
sdk: flutter


+ 1
- 4
test/zhiying_base_widget_test.dart Datei anzeigen

@@ -1,6 +1,5 @@
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:zhiying_base_widget/zhiying_base_widget.dart';

void main() {
const MethodChannel channel = MethodChannel('zhiying_base_widget');
@@ -17,7 +16,5 @@ void main() {
channel.setMockMethodCallHandler(null);
});

test('getPlatformVersion', () async {
expect(await ZhiyingBaseWidget.platformVersion, '42');
});
test('getPlatformVersion', () async {});
}

Laden…
Abbrechen
Speichern