初次接触Xamarin.Android.

由于国内Xamarin的资料少见,我大多参考JAVA原生代码,慢慢摸索过来。

我把摸索出来的结果广而告之,希望后来人能少走一点弯路,也希望你也能做出一份贡献。


如果你学会了RelativeLayout,那LinearLayout自然手到擒来。

动态添加学会了,静态添加还远吗?

1. 创建RelativeLayout

RelativeLayout Test = new RelativeLayout(this.Context);

2. 添加控件

2.1 基础添加

TextView TestText = new TextView(this.Context);
Test.AddView(TestText);

2.2 顶部添加 (底部添加等等类似)

RelativeLayout Test = new RelativeLayout(this.Context);
TextView TestText = new TextView(this.Context);
TestText.Text="我是1号";
RelativeLayout.LayoutParams TestTextRP = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WrapContent, RelativeLayout.LayoutParams.WrapContent);
TestTextRP.AddRule(LayoutRules.AlignParentTop);
Test.AddView(TestText,TestTextRP);

Android使用LayoutParams控制控件的空间布局。

而C#常用的布局是通过对控件的空间属性进行修改,这种设计思路在Android不适用了。

我不得不告诉你,如果你需要对控件布局参数进行修改,请务必使用LayoutParams。入乡随俗。

2.3 添加在另一个控件的后面

RelativeLayout Test = new RelativeLayout(this.Context);
TextView TestText = new TextView(this.Context);
TestText.Text = "我是1号";
RelativeLayout.LayoutParams TestTextRP = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WrapContent, RelativeLayout.LayoutParams.WrapContent);
TestTextRP.AddRule(LayoutRules.AlignParentTop);
Test.AddView(TestText,TestTextRP);
TextView NextText = new TextView(this.Context);
NextText.Text = "我是2号";
RelativeLayout.LayoutParams NextTextRP = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WrapContent, RelativeLayout.LayoutParams.WrapContent);
//注意这里
TestText.Id = View.GenerateViewId();
NextTextRP.AddRule(LayoutRules.Below,TestText.Id);
Test.AddView(NextText, NextTextRP);

测试图片:

这里面的关键点是给上一个控件的ID进行赋值。(我使用的是系统生成的值。你可以尝试其它值,如1,2,3..等等。)

如果你不赋值,那么实际效果是两个TextView将会重叠。

经过测试,每个控件的默认ID是-1.

2.4 待续

出自: https://www.cnblogs.com/nanyunan/p/9189057.html

Xamarin.Android RelativeLayout的更多相关文章

  1. Xamarin.Android通知详解

    一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android下的通知需要获取Notification ...

  2. Xamarin.Android之引导页的简单制作

    0x01 前言 对于现在大部分的APP,第一次打开刚安装或更新安装的APP都会有几个引导界面,通常这几个引导页是告诉用户 APP有些什么功能或者修改了什么bug.新增了什么功能等等等. 下面就用Xam ...

  3. Xamarin.Android之简单的抽屉布局

    0x01 前言 相信对于用过Android版QQ的,应该都不会陌生它那个向右滑动的菜单(虽说我用的是Lumia) 今天就用Xamarin.Android实现个比较简单的抽屉布局.下面直接进正题. 0x ...

  4. Xamarin.Android之动画

    Translate动画 这个动画是最常使用到的,主要就是将控件从一个位置移动到另一个位置,并且还可以在这其中增加一定的效果,下面我们将采用两种方式实现动画,首选的是利用XML来制作动画,其次就是利用代 ...

  5. Xamarin.Android开发实践(八)

    Xamarin.Android其他类型的服务 一.前言 前面我们已经学了关于服务的很多知识,但是对于真实的开发那些远远不够,通过这节我们将学习其他类型的服务,比如前台服务.IntentService和 ...

  6. Xamarin.Android开发实践(六)

    Xamarin.Android通知详解 一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android ...

  7. Xamarin Android开发实战(上册)大学霸内部资料

    Xamarin Android开发实战(上册)大学霸内部资料   试读文档下载地址:http://pan.baidu.com/s/1jGEHhhO 密码:vcfm 介绍: 本教程是国内唯一的Xamar ...

  8. [置顶] xamarin android自定义标题栏(自定义属性、回调事件)

    自定义控件的基本要求 这篇文章就当是自定义控件入门,看了几篇android关于自定义控件的文章,了解了一下,android自定义控件主要有3种方式: 自绘控件:继承View类,所展示的内容在OnDra ...

  9. [置顶] xamarin android Fragment实现底部导航栏

    前段时间写了篇关于Fragment的文章,介绍了基础的概念,用静态和动态的方式加载Fragment  Xamarin Android Fragment的两种加载方式.下面的这个例子介绍xamarin ...

随机推荐

  1. 跟我学算法-吴恩达老师的logsitic回归

    logistics回归是一种二分类问题,采用的激活函数是sigmoid函数,使得输出值转换为(0,1)之间的概率 A = sigmoid(np.dot(w.T, X) + b ) 表示预测函数 dz ...

  2. C#预编译的问题

    C#预编译宏并不像C++那样编译之后就不存在了.在UNITY的C#脚本中 #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass jc ...

  3. WebFont-前端字体

    WebFont-前端字体 前端设计时使用了一些不常用的字体,如何在客户的浏览器中正确展示? 解决方案是使用webfont,将字体置于服务端,利用 css 中的font-family进行设置,客户端展现 ...

  4. Defer 声明的设计理念

    [Defer 声明的设计理念] A defer statement pushes a function call onto a list. The list of saved calls is exe ...

  5. Website蝴蝶结构

    [Website蝴蝶结构] 网页的其正向链接连结在一起表现为一种蝴蝶结结构. 1.蝴蝶结中部(SCC, Strongly Connected Componnet) 这种网页彼此相连. 2.蝴蝶结左部( ...

  6. Android系统自带样式(@android:style/) (转)

    1 android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen" 布局页面最上面 不会显示  and ...

  7. linux sudo 系统环境变量 用户环境变量

    1. sudo就是普通用户临时拥有root的权限.好处在于,大多数时候使用用户自定义的配置,少数情况可以通过sudo实现root权限做事. 故而,需要注意的一点是,在你使用了sudo后,你临时不再是原 ...

  8. 【hdu3507】Print Article 【斜率优化dp】

    题意 https://cn.vjudge.net/problem/HDU-3507 分析 斜率优化的模板题 #include <cstdio> #include <cstring&g ...

  9. DNS开源服务器BIND最小配置详解

    一,简介 相对于存储和大数据领域,CDN是一个相对小的领域,但行行出状元,BIND就是CDN领域的蝉联N届的状元郎.BIND是一款非常常用的DNS开源服务器,全球有90%的DNS用BIND实现.值得一 ...

  10. Common issue on financial information exchange (FIX) Connectivity[z]

    FIX Protocol Session Connectivity Hi guys, in this post I would like share my experience with financ ...