Xamarin表单按钮带有加载指示灯

时间:2017-01-14 12:00:59

标签: xamarin xamarin.forms

我大约一周进入Xamarin,对于在按钮内加载图标的可能性有疑问。

我想实现类似的东西: https://jsfiddle.net/mr8fwtcv/

我试图用FontAwesome实现这种效果,但是设置动画有问题,所以在解决方案中使用Activity Indicator也不错。

我的按钮位于Stack Layout内,这是代码:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'

        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我一直在寻找一些插件/解决方案,但无法找到任何插件/解决方案。 提前谢谢。

1 个答案:

答案 0 :(得分:5)

您必须使用布局才能拥有多个控件。如果你不是在寻找CustomRenderers,那么你可以做的就是拥有一个RelativeLayout,并且在Button和Activity Indicator里面。您还必须为按钮文本编写一个转换器,当IsBusy为true时,该文本将文本设置为string.Empty。

例如:

<StackLayout>
    <ActivityIndicator IsVisible="{Binding IsBusy}" IsRunning="{Binding IsBusy}" />
    <Button Text="{Binding ButtonText, Converter={StaticResource ButtonTextConverter}, ConverterParameter={Binding IsBusy} />
</StackLayout>

此外,如果您计划在多个位置使用此功能,则可以将其创建为自定义控件。

您可以查看自定义控制代码here

完整项目可用here