如何在Xamarin表单中创建带有圆角/边缘的进度条

时间:2018-09-10 13:07:38

标签: android xamarin xamarin.forms progress-bar custom-renderer

我需要专家的帮助。我正在努力在Xamarin Form中创建带有圆角的ProgressBar。我已经在Google上进行搜索,并通过使用layer属性ex找到了几则帖子。 “ Layer.CornerRadius = 5”,但我的代码不支持。

How to make a progress bar with rounded corners in Xamarin forms

(不支持上述示例)

如何创建进度条的圆形边缘?

示例代码(TestControls.xaml usnig XamarinForm):-

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:Test.Mobile"
            xmlns:ffimageloadingsvg="clr-namespace:FFImageLoading.Svg.Forms;assembly=FFImageLoading.Svg.Forms"
             x:Class="Test.Mobile.UI.TestControls">
    <ContentPage.Content>

            <Grid Grid.Column="1"  Margin="0" Padding="0"  BackgroundColor= "LightYellow"  >
                <ProgressBar x:Name="pb_ProgressBar" Margin="70,0,30,0"   Progress="0.0" WidthRequest="300" HeightRequest="20" ProgressColor="DarkSlateBlue" VerticalOptions="Center"  BackgroundColor="AntiqueWhite"></ProgressBar>
            </Grid> 

    </ContentPage.Content>
</ContentPage>

,文件后的代码为

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace Test.Mobile.UI
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class TestControls : ContentPage
    {
        public TestControls ()
        {
            InitializeComponent ();

            Device.BeginInvokeOnMainThread(async () =>
            {
                await pb_ProgressBar.ProgressTo(1.0, 10000, Easing.Linear);
            });
        }         

    }
}

enter image description here

请帮助我如何在Xamarin表单中制作带有圆角的进度条?

1 个答案:

答案 0 :(得分:0)

  

我不能使用xmlns:android =“ schemas.android.com/apk/res/android”;。设备android平板电脑将离线使用,并且无法访问互联网。

这不是库,您可以参考以下问题:

Why this line xmlns:android=“http://schemas.android.com/apk/res/android” must be the first in the layout xml file?

正如NitroG42所说,XMLxmlns中声明了一个命名空间。实际上,当您这样做时:

<LinearLayout android:id>
</LinearLayout>

android:id不会调用xml,而是使用http://schemas.android.com/apk/res/android:id是唯一的。通常,此页面不存在(它是URI,而不是URL ),但有时它是一个URL来说明使用的名称空间。

名称空间的用途与Java应用程序中的包名称几乎相同。

您可以参考documentation

  

统一资源标识符(URI)

     

统一资源标识符(URI)是一个字符串,用于标识Internet资源。

     

最常见的URI是用于标识Internet域地址的统一资源定位符(URL)。 URI的另一种(不是很常见)类型是通用资源名称(URN)。