小编Tom*_*Tom的帖子

Flutter:我可以在 BLoC 架构中使用 setState() 吗?

我对状态管理的理解是,setState()单独调用会带来各种混乱的问题,代码文件变得庞大且难以调试,并且它阻止了项目的合理结构。在小部件的外观略有变化的情况下,拥有像 BLoC 或 ScopedModel 这样的复杂架构只是为了显示/隐藏小部件(例如)是没有意义的。然而,我所理解的方式是你不能将setState()一个架构混合在一起,否则架构的意义何在?

让我们对这个问题使用 BLoC(只是因为我碰巧在使用它),特别是这个 package。假设我有这个超级简单的示例代码:

class MyWidget extends StatefulWidget {
  @override
  void createState() {
    return _MyWidgetState();
  }
}

class _MyWidgetState extends State<MyWidget>() {
  bool _isShowing = false;
  MyBloc bloc;

  @override
  void initState() {
    super.init();
    bloc = MyBloc();
  }

  @override
  Widget build(BuildContext context) {
    return BlocBuilder(
      bloc: bloc,
      builder: (context, state) {
        return Column(
          children: <Widget>[
            Text(state.myText),
            if (_isShowing)
              Text("Button has been pressed!"),
            RaisedButton(
              child: Text("Show label"),
              onTap: () => setState(() => …
Run Code Online (Sandbox Code Playgroud)

flutter bloc

6
推荐指数
1
解决办法
3097
查看次数

Xamarin.Forms 按钮在触摸后被禁用

我使用 Xamarin.Forms 和 MvvmCross,但我在应用程序中遇到了问题。触摸并运行命令后,按钮有时会被禁用。

我在按钮上添加了 IsEnabled="True" 但没有任何改变

<Button 
    WidthRequest="36" 
    HeightRequest="36" 
    CornerRadius="18" 
    BorderWidth="2" 
    FontSize="18" 
    Text="{Binding OptionText}" 
    Command="{Binding OptionSelectedCommand}" 
    CommandParameter="{Binding .}" 
    IsEnabled="True" 
    VerticalOptions="Center" 
    HorizontalOptions="Center"/>
Run Code Online (Sandbox Code Playgroud)

我希望始终启用此按钮。

我的命令代码是:

<Button 
    WidthRequest="36" 
    HeightRequest="36" 
    CornerRadius="18" 
    BorderWidth="2" 
    FontSize="18" 
    Text="{Binding OptionText}" 
    Command="{Binding OptionSelectedCommand}" 
    CommandParameter="{Binding .}" 
    IsEnabled="True" 
    VerticalOptions="Center" 
    HorizontalOptions="Center"/>
Run Code Online (Sandbox Code Playgroud)

command button mvvm mvvmcross xamarin.forms

5
推荐指数
1
解决办法
871
查看次数

如何使用 xamarin 保存文本文件以及文件保存在哪里

我是 Xamarin 的新手。我有简单的应用程序;我有笔记字段和拍照功能的地方。我正在使用媒体插件拍照。图片显然会保存在手机图库中。但我也想保存文本文件,其中包含手机中笔记字段的输入。

我正在努力保存文本文件。

是产品结构。我正在使用共享项目。

文件结构和类图像

示例应用程序图片

我有一个保存按钮。我想要做的是点击保存按钮时;保存用户从注释字段输入的文本文件。

这是我的保存按钮的操作

我在看这个网站 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/files?tabs=windows

我尝试了一些代码,但没有任何效果。

private async void Take_Photo_Button_Clicked(object sender, EventArgs e)
{
    await CrossMedia.Current.Initialize();
    if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
    {
        await DisplayAlert("No Camera", ":( No camera available.", "OK");
        return;
    }

    var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
    {
        SaveToAlbum = true,
        Name = jobnoentry.Text + "-" + Applicationletterentry + "-" + signnoentry.Text + "-" + SignType,

    });


    if (file == null)
        return;

    MainImage.Source = ImageSource.FromStream(() =>
    {
        var stream = file.GetStream();
        return stream;
    }); …
Run Code Online (Sandbox Code Playgroud)

c# visual-studio-2010 xamarin

1
推荐指数
1
解决办法
2992
查看次数