第二章:解剖一个应用程序(6)

简介:

解决方案1.在页面上添加填充
Page类定义了一个名为Padding的属性,用于标记内容不能侵入的页面内部周围的区域。 Padding属性的类型是Thickness,它是一个定义了名为Left,Top,Right,Bottom的四个属性的结构。 (您可能需要记住该顺序,因为这是您在厚度构造函数以及XAML中定义属性的顺序。)厚度结构还定义了构造函数,用于在所有四边上设置相同的填充量或设置 在左边和右边,在顶部和底部相同的金额。
在你最喜欢的搜索引擎中进行一些研究,可以发现iOS状态栏的高度为20(二十个,你可能会问,二十个像素,实际上,现在只是把它们看作20个单位。 大部分的Xamarin.Forms编程,你不需要打扰数字大小,但是第5章,“处理大小”,将提供一些指导,当你需要到像素级。)
你可以像这样容纳状态栏:

点击(此处)折叠或打开

namespace Greetings
{
    public class GreetingsPage : ContentPage
    {
        public GreetingsPage ()
        {
            Content = new Label
            {
                Text = "Greetings, Xamarin.Forms!"
            };
        Padding = new Thickness(0, 20, 0, 0);
        }
    }
}

现在问候出现在页面顶部20个单位:
2018_01_24_205036

在ContentPage上设置Padding属性可以解决文本覆盖iOS状态栏的问题,但是它也会在Android和Windows Phone上设置相同的填充,不需要填充。 有没有办法只在iPhone上设置这个填充?
解决方案2.仅包含适用于iOS的填充(仅限SAP)
共享资产项目(SAP)方法的优点之一是项目中的类是应用程序项目的扩展,因此您可以使用条件编译指令。
让我们试试这个。 我们需要一个基于SAP模板的名为GreetingsSap的新解决方案,以及一个名为GreetingsSapPage的GreetingsSap项目中的新页面类。 要仅在iOS中设置填充,该类看起来像这样:

点击(此处)折叠或打开

{
    public class GreetingsSapPage : ContentPage
    {
        public GreetingsSapPage ()
        {
            Content = new Label
            {
                Text = "Greetings, Xamarin.Forms!"
            };
#if __IOS__
            Padding = new Thickness(0, 20, 0, 0);
#endif
        }
    }
}

if指令引用了条件编译符号__IOS__,所以Padding属性只是为iOS项目设置的。 结果如下所示:

2018_01_24_205434

但是,这些条件编译符号只影响程序的编译,所以在PCL中不起作用。 有没有办法让PCL项目为不同的平台包含不同的填充?

目录
相关文章
|
7月前
|
存储 分布式计算 Java
深入探究JAVA编程语言:概念、应用与实例分析
**JAVA**是广泛应用的高级编程语言,以其易学性、跨平台能力和高效的性能著称。它采用面向对象编程,强调封装、继承和多态,且具备平台无关性、内置安全性和多线程支持。JAVA广泛应用于Web开发(如JSP、Servlet)、移动应用(Android开发)、大数据处理(Hadoop、Spark)和桌面应用。通过一个计算两数之和的简单示例,展示了JAVA的易读性和面向对象特性,帮助读者理解JAVA在实际开发中的运用。
|
监控 数据可视化 测试技术
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
291 0
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
|
测试技术 数据库
怎样成为优秀软件模型设计者
导读:文章转自博客园,作者heartstill写了一篇《怎样成为优秀软件模型设计者》,文中阐述了不同观点,见解独特,构思新颖。以下是文章内容: 我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?将下列原则应用到你的软件工程中,你会获得立杆见影的成果。
935 0
|
Android开发 iOS开发 Windows
|
Android开发 iOS开发 Windows
|
Android开发 iOS开发 Windows
|
Android开发 iOS开发 Windows
|
Android开发 iOS开发 Windows
第二章:解剖一个应用程序(1)
现代的用户界面是由各种视觉对象构成的。 根据操作系统的不同,这些可视对象可能会有不同的名称(控件,元素,视图,小部件),但它们都专注于演示或交互作用或两者兼而有之。在Xamarin.Forms中,屏幕上出现的对象统称为可视元素。
1386 0