Xamarin XAML语言教程Xamarin.Forms中活动指示器的显示隐藏

开发者除了可以在XAML中使用IsRunning属性控制指示器的显示隐藏外,还可以在代码隐藏文件中使用IsRunning属性控制指示器的显示隐藏。这时,首先需要在XAML文件中,使用x:Name属性为活动指示器定义一个名称,然后在代码隐藏文件中通过定义的名称对IsRunning属性进行设置即可。

【示例12-2:ActivityIndicatorIsRunningTwo】以下将在代码隐藏文件中控制活动指示器的显示和隐藏。具体的操作步骤如下:

(1)MainPage.xaml文件,编写代码,对内容页面进行布局。代码如下:

<?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:ActivityIndicatorIsRunningTwo"

x:Class="ActivityIndicatorIsRunningTwo.MainPage">

<StackLayout Spacing="55"

VerticalOptions="Center">

<ActivityIndicator x:Name="activityIndicator" />

<StackLayout Spacing="10">

<Button x:Name="showButton"

Text="ShowActivityIndicator"

Clicked="OnShowActivityIndicator"/>

<Button x:Name="hideButton"

IsEnabled="False"

Text="HideActivityIndicator"

Clicked="OnHideActivityIndicator"/>

</StackLayout>

</StackLayout>

</ContentPage>

(2)打开MainPage.xaml.cs文件,编写代码,实现通过按钮控制活动指示器的显示和隐藏功能。代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Xamarin.Forms;

namespace ActivityIndicatorIsRunningTwo

{

public partial class MainPage : ContentPage

{

public MainPage()

{

InitializeComponent();

}

//显示活动指示器

void OnShowActivityIndicator(object sender, EventArgs args)

        {

            activityIndicator.IsRunning = true;

            showButton.IsEnabled = false;

            hideButton.IsEnabled = true;

        }

//隐藏活动指示器

 void OnHideActivityIndicator(object sender, EventArgs args)

        {

            activityIndicator.IsRunning = false;

            showButton.IsEnabled = true;

            hideButton.IsEnabled = false;

        }

}

}

此时运行程序,会看到如图12.4~12.6所示的效果。当开发者轻拍ShowActivityIndicator按钮,会看到活动指示器显示了,并且进行活动,效果类似于图12.7~12.9所示。

 

图12.4 图12.7   Android           图12.5  图12.8  iOS       图12.6 图12.9   Windows Phone

开发者除了可以为ActivityIndicator定义的IsRunning属性直接赋布尔值外,还可以通过数据绑定的方式为该属性赋值,此时绑定的数据也一样是返回布尔类型的。

【示例12-3:ActivityIndicatorIsRunningThree】以下将实现加载网络图像的功能。代码如下:

<?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:ActivityIndicatorIsRunningThree"

x:Class="ActivityIndicatorIsRunningThree.MainPage">

<StackLayout>

<Image x:Name="myImage"

Source="https://timgsa.baidu.com/timg?image&amp;quality=80&amp;size=b9999_10000&amp;sec=1487155536489&amp;di=cc531038dafb3b75d689fdd47a5a775c&amp;imgtype=0&amp;src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F1%2F57973400dbbf3.jpg"

HeightRequest="480"

WidthRequest="300"

HorizontalOptions="Center"/>

<ActivityIndicator x:Name="indicator"

                       BindingContext="{x:Reference Name=myImage}"

                       IsRunning="{Binding Path=IsLoading}"/>

</StackLayout>

</ContentPage>

在此代码中,我们将ActivityIndicator属性绑定到了Image的IsLoading属性上。此时运行程序,会看到如图12.10~12.12所示的效果。当图像加载完成后,会看到类似于图12.13~12.15所示的效果。

 

图12.10图12.13  Android          图12.11 图12.14   iOS     图12.12 图12.15 Windows Phone

Xamarin XAML语言教程Xamarin.Forms中活动指示器的显示隐藏的更多相关文章

  1. Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色

    Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色 在图12.10~12.12中我们会看到在各个平台下活动指示器的颜色是不一样的.Android的活动指示器默认是深粉色的: ...

  2. Xamarin XAML语言教程Xamarin.Forms中程序状态与进度(一)

    Xamarin XAML语言教程Xamarin.Forms中程序状态与进度(一) 在Xamarin.Forms中,提供了两个控件用来指示程序的状态和进度.他们分别为活动指示器和进度条.其中,活动指示器 ...

  3. Xamarin XAML语言教程Xamarin.Forms中构建进度条

    Xamarin XAML语言教程Xamarin.Forms中构建进度条 ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度条总是水平放置的.本节将讲解如何使用进度条. 注意:进度条在 ...

  4. Xamarin XAML语言教程Visual Studio中实现XAML预览

    Xamarin XAML语言教程Visual Studio中实现XAML预览 每次通过编译运行的方式查看XAML文件效果,需要花费大量的时间.如果开发者使用XAML对UI进行布局和设计,可以通过预览的 ...

  5. Xamarin XAML语言教程使用Xamarin Studio创建XAML(二)

    Xamarin XAML语言教程使用Xamarin Studio创建XAML(二) 使用Xamarin Studio创建XAML Xamarin Studio和Visual Studio创建XAML文 ...

  6. Xamarin XAML语言教程模板视图TemplatedView(二)

    Xamarin XAML语言教程模板视图TemplatedView(二) (2)打开MainPage.xaml文件,编写代码,将构建的控件模板应用于中TemplatedView.代码如下: <? ...

  7. Xamarin XAML语言教程模板视图TemplatedView(一)

    Xamarin XAML语言教程模板视图TemplatedView(一) 模板视图TemplatedView 与模板页面相对的是TemplatedView,它被称为模板视图,它的功能和模板页面类似,也 ...

  8. Xamarin XAML语言教程构建ControlTemplate控件模板 (四)

    Xamarin XAML语言教程构建ControlTemplate控件模板 (四) 2.在页面级别中构建控件模板 如果开发者要在页面级别中构建控件模板,首先必须将ResourceDictionary添 ...

  9. Xamarin XAML语言教程构建ControlTemplate控件模板 (二)

    Xamarin XAML语言教程构建ControlTemplate控件模板 (二) (2)打开MainPage.xaml文件,编写代码,将构建的控件模板应用于ContentView中.代码如下: &l ...

随机推荐

  1. HDU 3848 CC On The Tree 树形DP

    题意: 给出一棵边带权的树,求距离最近的一对叶子. 分析: 通过DFS计算出\(min(u)\):以\(u\)为根的子树中最近叶子到\(u\)的距离. 然后维护一个前面子树\(v_i\)中叶子到\(u ...

  2. 记一次开发过程中,iview遇到的一些坑以及解决办法

    写在开头:本次项目采用的是vue2.0+iview3.0,最近公司没啥事,来总结一下开发过程中遇到的问题. 1.Modal关闭问题 需求背景:modal框里面是个form表单,点击确定之后,先验证fo ...

  3. 基础_String

    String str1="hello"; String str2="hello"; String str3="hello"; String ...

  4. dotnet core 2.2 安装后在vs2017中无法选择 dotnet core 2.2 为目标框架

    可能有效的解决方案: 无法完全保证有效,因为我本地装上没问题,只帮同事解决过一次,貌似有效 方案就是多装几个 .net core 2.2.xxx 版本,然后可能就正常识别了. 在安装之前,先把 vs ...

  5. luogu1829 [国家集训队]Crash的数字表格

    被 bs 了姿势水平--好好学习数学QAQQAQQAQ ref #include <iostream> #include <cstring> #include <cstd ...

  6. Quorum机制与NRW算法总结

    Quorum机制与NRW算法总结 1.Quorum机制 Quorum,原指为了处理事务.拥有做出决定的权力而必须出席的众议员或参议员的数量(一般指半数以上). 2.NRW算法 NRW算法是基于Quor ...

  7. leetcode 【 Remove Element 】python 实现

    题目: Given an array and a value, remove all instances of that value in place and return the new lengt ...

  8. 数据结构算法——链表的各种操作,C++和Python

    时隔已久,一直没更新博客,感觉很愧疚呀. 先贴上所有的代码.这个是用C++写的 #include "stdafx.h" //Author:Albert //Date: 2018.1 ...

  9. Python设计模式之一(单例模式)

    单例模式就是告诉你,只有一个对象 (1)单例模式不适用的场景 #单例模式就是告诉你,其实只有一个对象 class Person: def __init__(self,name,age): self.n ...

  10. redis设置最大内存上限对置换策略的解读

    现在很少服务器还在使用32位的操作系统了,所以服务器的内存可以接近极限2^64的字节.redis配置文件中有限制最大内存的字段maxmemory,当redis的key达到最大值时,redis会有多种策 ...