标签: xlabs

Xamarin.Forms自动完成CrossPlatform

我是Xamarin.Forms平台的新手.我希望你能帮我前进.我希望在xamarin.forms中拥有类似自动完成的控件,如下所示

自动完成

你能指导一下如何在Xamarin.Forms中实现它吗?我想通过Entry Control实现它

TIA

xamarin xamarin.forms xamarin.forms.labs xlabs

11
推荐指数
2
解决办法
2万
查看次数

Xamarin mediaPicker.TakePhotoAsync崩溃应用程序

我有一个使用XLabs的Xamarin.Forms应用程序,它工作正常,但突然它开始崩溃我的应用程序,如果我从照片屏幕拍照或按后退按钮,我谷歌搜索了4个小时仍然不知道为什么它发生了,任何想法或想法,请帮忙!

这是我的代码行:

    private async Task TakePicture()
    {
        mediaPicker = Resolver.Resolve<IDevice>().MediaPicker;

        try
        {
            var mediaFile = await mediaPicker.TakePhotoAsync(new CameraMediaStorageOptions
            {
                DefaultCamera = CameraDevice.Front,
                MaxPixelDimension = 1,
                PercentQuality = 2,
            });

            var image = GetResizedImage(mediaFile.Source, 990, 560);
            OnImageUpdate(this, image);
        }
        catch (Exception ex)
        {
            this.status = ex.Message;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的许可没问题:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

07-02 16:01:20.433 D/Mono    (20722): Assembly Ref addref XLabs.Platform.Droid[0x77114be8] -> System[0x7915c498]: 14
07-02 16:01:20.463 D/Activity(20722): #1 setTransGradationModeColor false
07-02 16:01:21.118 D/Mono    (20722): Assembly Ref addref Xamarin.Forms.Platform.Android[0x7710d050] …
Run Code Online (Sandbox Code Playgroud)

c# android xamarin xamarin.forms xlabs

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

将新页面推送到导航时显示ActivityIndi​​cator

我很难实现像在页面加载时显示ActivityIndi​​cator那样简单的功能,事实证明这非常困难。

这是我在App.xaml.cs上使用的代码:

public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            MainPage = new NavigationPage(new LoginPage());
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的LoginPage

public partial class LoginPage : ContentPage
    {
        public LoginPage()
        {
            InitializeComponent();

            btnLogin.Clicked += BtnLogin_Clicked;
        }

        protected async void BtnLogin_Clicked(object sender, EventArgs e)
        {
    loadingView.IsVisible = true;
    activityIndicator.IsRunning = true;

            await Navigation.PushAsync(new SchedulePage());

    loadingView.IsVisible = false;
    activityIndicator.IsRunning = false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

无需赘述,loadingView是我在xaml文件上的视图,该文件包含我的ActivityIndi​​cator。我的主要问题是,当我调用Navigation.PushAsync()时,ActivityIndi​​cator的动画将停止。据我所读,这是因为两个操作都发生在Main线程上,所以一个中断了另一个。

我需要显示该指标的原因是因为我的SchedulePage需要很多时间来呈现,因为它具有XLabs日历控件。

您将如何实现这样的目标?

c# xamarin.android xamarin xamarin.forms xlabs

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

在Xamarin.Forms中访问相机

我需要使用Xamarin Forms PCL访问相机.我找不到任何可行的样本.

我尝试安装XLab并使用其示例代码,但它有例外.例如,使用XLabs示例我使用以下内容:

/// <summary>
/// Takes the picture.
/// </summary>
/// <returns>Take Picture Task.</returns>
internal async Task<MediaFile> TakePicture()
{
    Setup();

    ImageSource = null;

    return await _mediaPicker.TakePhotoAsync(new CameraMediaStorageOptions { DefaultCamera = CameraDevice.Front, MaxPixelDimension = 400 }).ContinueWith(t =>
    {
        if (t.IsFaulted)
        {
            Status = t.Exception.InnerException.ToString();
        }
        else if (t.IsCanceled)
        {
            Status = "Canceled";
        }
        else
        {
            var mediaFile = t.Result;

            ImageSource = ImageSource.FromStream(() => mediaFile.Source);

            return mediaFile;
        }

        return null;
    }, _scheduler);
}

/// <summary>
/// Setups this …
Run Code Online (Sandbox Code Playgroud)

c# camera xamarin.forms xlabs

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