我在使用英雄库通过自定义动画来解雇我时遇到问题ViewController。
最后,我希望拥有与该视频中几乎完全相同的动画:
到目前为止,我的解雇动画如下所示:
我有 3 个我无法解决的主要问题:
1.
当展示/解散我的ViewController第二个背景时,似乎有这个白色背景ViewController,但我想用第二个背景覆盖我的第ViewController一个背景,而不需要任何白色视图。
2.image当用户开始在我的视图后面向下滑动后,
我的消失,而在视图实际关闭之前,它不应该改变其位置(首选关闭动画)。add-Button右下角的也是同样的情况。
3.就像在首选的关闭动画中一样,我的backgroundView(第二个视频中的浅灰色视图)应该比另一个更快地关闭subviews。我尝试使用cascade-modifier但无法达到这种效果。
这是我的第二个ViewController:
override func viewDidLoad() {
super.viewDidLoad()
self.wishlistBackgroundView.hero.isEnabled = true
self.wishlistBackgroundView.heroID = "wishlistView"
self.wishlistBackgroundView.hero.modifiers = [.fade, .translate(CGPoint(x: 0, y: 800), z: 20)]
// adding panGestureRecognizer
panGR = UIPanGestureRecognizer(target: self,
action: #selector(handlePan(gestureRecognizer:)))
view.addGestureRecognizer(panGR)
self.wishlistLabel.text = wishList.name
self.wishlistImage.image = wishList.image
self.theTableView.wishList = wishList.wishData
self.theTableView.tableView.reloadData()
view.addSubview(wishlistBackgroundView) …Run Code Online (Sandbox Code Playgroud) 我正在尝试pdf-file使用Firebase-Storage此功能上传:
static Future<String> savePdf({
required Uint8List assetAsUint8List,
required String fileName,
required DocumentType documentType,
}) async {
String path =
'${BackendService().keys.studs}/${AuthenticationService().currentUser?.uid}/${documentType.name}/$fileName';
await FirebaseStorage.instanceFor().ref(path).putData(
assetAsUint8List,
);
return FirebaseStorage.instance.ref(path).getDownloadURL();
}
Run Code Online (Sandbox Code Playgroud)
但这失败了error:
未处理的异常:[firebase_storage/no-bucket] 找不到默认存储桶。确保您已正确遵循入门指南。
我configure的应用程序在我的里面是这样的main:
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: kIsWeb || Platform.isAndroid
? FirebaseOptions(
apiKey: "my-api-key",
appId: "my-app-id",
messagingSenderId: "my-messaing-sender-id",
projectId: "appflug",
)
: null,
);
runApp(
const App(),
);
}
Run Code Online (Sandbox Code Playgroud)
它实际上可以在 iOS 上运行!但不适用于 Android 或 Web...
我遵循了文档,但它根本不起作用......我找不到任何对此有帮助的东西!
我在这里缺少什么?
如果您需要更多信息,请告诉我!
有没有办法定位清除按钮?我想将其向下移动一点,以便与文本输入处于同一级别。有任何想法吗?
我的文本字段已经是另一个处理效果的类的子类。包括“clearButtonRect”功能不起作用。
@IBDesignable open class HoshiTextField: TextFieldEffects {
//effect functions..
override open func clearButtonRect(forBounds bounds: CGRect) -> CGRect {
return CGRect(x: 0, y: 0.2, width: 0.1, height: 0.3)
}
}`
Run Code Online (Sandbox Code Playgroud)

我有一个NavBar我通过 a 控制的Provider:
class BottomNavBarProvider extends ChangeNotifier {
final PageController navigationController = PageController(initialPage: 0);
int selectedTabIndex = 0;
BottomNavBarProvider() {}
void selectTab(int index) {
navigationController.jumpToPage(index);
selectedTabIndex = navigationController.page?.round() ?? 0;
notifyListeners();
}
}
Run Code Online (Sandbox Code Playgroud)
问题:
我认为问题是我使用 aProvider来存储我的,PageContrller所以如果我推送到另一个页面,在那里BottomBar使用 ,它总是附加到来自提供者的同一个页面。所以我想我需要一种方法来正确dispose的PageController。但是我该怎么做呢?
我在我的内部使用它ApplicationContainer:
class ApplicationContainer extends StatelessWidget {
@override
Widget build(BuildContext context) {
initSizeService(context);
return Scaffold(
body: PageView(
controller:
Provider.of<BottomNavBarProvider>(context).navigationController,
children: <Widget>[
HomePage(),
EntryPage(),
VitalsHistoryPage(
Provider.of<VitalsHistoryProvider>(context),
),
SettingsPage(),
], …Run Code Online (Sandbox Code Playgroud) 我正在尝试将现有的 Flutter 应用程序迁移到网络。问题是某些 Web 包不存在(例如ObjectBox)。
我真的不想构建一个全新的项目,那么有没有办法排除网络的某些依赖项?找不到这方面的任何东西...
我实现了这样perspective_page_view的。我将代码更新到新的 Flutter 版本,一切正常。
问题是我希望它PageView有一个无限循环。
我尝试了在这个问题上找到的多种不同的解决方案,但没有一个有效。他们都搞乱了我的观点。
我觉得这应该是可能的,但我无法想出解决方案。为每一次帮助感到高兴!如果您需要更多信息,请告诉我!
最小可生产示例:
我的Scaffold:
class ProjectsViewState extends State<ProjectsView>
with TickerProviderStateMixin {
late PageViewHolder holder;
late PageController _controller;
double fraction = 0.50;
@override
void initState() {
super.initState();
holder = PageViewHolder(value: 2.0);
_controller = PageController(initialPage: 2, viewportFraction: fraction);
_controller.addListener(() {
holder.setValue(_controller.page);
});
}
int currentPage = 2;
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: ChangeNotifierProvider<PageViewHolder>.value(
value: holder,
child: Flexible(
child: PageView.builder(
controller: _controller,
onPageChanged: (value) …Run Code Online (Sandbox Code Playgroud) 我将fvm添加到我的项目中并像这样设置它。现在我可以运行所有命令,例如fvm use x.x.x或fvm flutter pub get。一切正常。
但是,当直接通过 VSCode 运行应用程序(“播放”按钮或快捷方式)时,它始终使用我最新的安装 SDK 版本。为什么不从当前的 flutter 版本开始?
这是我的settings.json:
{
"dart.flutterSdkPaths": [
"/Users/usr/fvm/versions"
],
// Remove .fvm files from search
"search.exclude": {
"**/.fvm": true
},
// Remove from file watching
"files.watcherExclude": {
"**/.fvm": true
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?如何配置fvm 才能与 VSCode 一起正常工作?
我希望能够保存一个Custom-struct toUserDefaults但为此我需要它是Codable.. 我试过这样的:
struct Wishlist: Codable {
var name: String
var image: UIImage
var wishData: [Wish]
var color: UIColor
var textColor: UIColor
var index: Int
}
Run Code Online (Sandbox Code Playgroud)
但这给了我这个error:
“愿望清单”类型不符合“可解码”协议
这是我的Class Wish,也许这就是问题所在:
class Wish: NSObject {
public var wishName : String?
public var checkedStatus : Bool?
public var wishLink : String?
public var wishPrice : String?
public var wishNote : String?
public var wishImage : UIImage?
init(withWishName name: String, link: String, price: String, …Run Code Online (Sandbox Code Playgroud) 我想在我Main Project和我的之间共享数据Share Extension。这就是我所做的:
1.Project在&中启用应用程序组Share Extension
2.将数据保存在Project里面viewDidLoad(工作正常,我测试过):
DataHandler.getWishlists { (success, dataArray, dropOptionsArray) in
if success && dataArray != nil {
self.shouldAnimateCells = true
self.dataSourceArray = dataArray as! [Wishlist]
self.theCollectionView.isHidden = false
self.theCollectionView.reloadData()
self.dropOptions = dropOptionsArray as! [DropDownOption]
self.addButton.isEnabled = true
self.activityIndicator.stopAnimating()
// save dataSourceArray in UserDefaults
if let defaults = UserDefaults(suiteName: UserDefaults.Keys.groupKey) {
defaults.setDataSourceArray(data: dataArray as! [Wishlist])
defaults.synchronize()
} else {
print("error Main")
}
}
}
Run Code Online (Sandbox Code Playgroud)
3.检索数据Share …
这是我得到的完整警告:
多个目标匹配链接器标志“-framework GTMSessionFetcher”的隐式依赖项。考虑添加对预期目标的显式依赖以解决这种歧义。(在“愿望清单”项目的目标“愿望清单”中)
这是什么原因,我该如何解决?这也会导致此错误。
我有一个主应用程序和一个 ShareExtension。
这是我的podfile:
# Uncomment the next line to define a global platform for your project
platform :ios, '13.0'
target 'Wishlists' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for Wishlists
pod 'Firebase/Analytics'
pod 'Firebase/Auth'
pod 'Firebase/Core'
pod 'Firebase/Firestore'
pod 'Firebase/Database'
pod 'Firebase/Crashlytics'
pod 'Firebase/Analytics'
#pod 'TextFieldEffects'
pod 'Hero'
pod 'RevealingSplashView'
pod 'LBTAComponents'
pod 'lottie-ios'
pod 'SwiftEntryKit', '1.2.3'
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod …Run Code Online (Sandbox Code Playgroud)