Xamarin 总结 (官方文档笔记)

1. ContentDescription 一个 属性,供屏幕读取 API 使用,以提供控件用途的可访问说明。

<ImageButton
    android:id=@+id/saveButton"
    android:src="@drawable/save_image"
    android:contentDescription="Save data" />

2. android:hint 在EditText 提供预期输入。

<EditText
    android:id="@+id/someText"
    android:hint="Enter some text" />

3.LabelFor若要将标签与数据输入控件关联

<TextView
    android:id="@+id/labelFirstName"
    android:hint="Enter some text"
    android:labelFor="@+id/editFirstName" />
<EditText
    android:id="@+id/editFirstName"
    android:hint="Enter some text" />

4. Focusable 将控件标记为在导航期间特别能够接收焦点。  还可使用 nextFocus DownnextFocus LeftnextFocus RightnextFocusUp属性(通常在布局 AXML 中设置)控制焦点顺序。 使用这些属性确保用户可以轻松地浏览屏幕上的控件。

label.Focusable = false;
<android:focusable="false" />

5 辅助功能和本地化  在文件存储 文件中Strings.xml 可以直接从字符串文件中查找转换后的值

Resources.GetText:

6. resource目录下称为 " 默认资源 ",并由所有设备使用,包括drawable layout values 等 此外,每种类型的资源可能有可选的 备用资源 ,Android 可能会使用这些资源来定位特定设备。 例如,可能会提供资源以面向用户的区域设置、屏幕大小,或者设备是否旋转了90度(从纵向到横向)等。在上述每种情况下,Android 都将加载用于应用程序的资源,而无需开发人员进行任何额外的编码工作。

7.安卓的活动周期详见上一博客  官方图

Running :  这会被视为 Android 中优先级最高的活动,因此,只有在极端情况下,操作系统才会终止此活动,如活动尝试使用比设备上提供的内存更多的内存,这可能会导致 UI 无响应

Paused: 当设备进入睡眠状态,或者活动仍可见,但活动仍被新的、未完全大小的或透明的活动隐藏时,该活动被视为已暂停。 暂停的活动仍处于活动状态,即,它们维护所有状态和成员信息,并保持附加到窗口管理器。

以上为安卓自带返回和home键  如果单击back键 会告诉安卓这个activity 已经完成 ,安卓进行销毁(Destroy)。但是如果点击home activity 位于活动后台(Pause)不会终止

 8. 绑定状态   Bundle

当创建 OnCreate 了向其传递捆绑作为参数的方法的活动时,可以使用此绑定来还原实例状态

  • OnSaveInstanceState –在销毁活动时,Android 会调用此方法。 如果活动需要保留任何键/值状态项,则这些活动可以实现此方法。

  • OnRestoreInstanceState –在方法完成后 调用此方法,并且为活动提供了在初始化完成后恢复其状态的另一种机会。

    int c;
    
    protected override void OnCreate (Bundle bundle)
    {
      base.OnCreate (bundle);
    
      this.SetContentView (Resource.Layout.SimpleStateView);
    
      var output = this.FindViewById<TextView> (Resource.Id.outputText);
    
      if (bundle != null) {
        c = bundle.GetInt ("counter", -1);
      } else {
        c = -1;
      }
    
      output.Text = c.ToString ();
    
      var incrementCounter = this.FindViewById<Button> (Resource.Id.incrementCounter);
    
      incrementCounter.Click += (s,e) => {
        output.Text = (++c).ToString();
      };
    }
    ///当单击名 incrementCounter 为的按钮时,上面的代码会递增名为 c 的整数,并将结果显示在一个名 output 为的 TextView 中。 发生配置更改时(例如,当设备旋转时),上面的代码将丢失的值 c 所以要重写 OnSaveInstanceState 
    protected override void OnSaveInstanceState (Bundle outState)
    {
      outState.PutInt ("counter", c);
      base.OnSaveInstanceState (outState);
    }

    尽管可以轻松地保存暂时性数据,但 OnSaveInstanceState 有一些限制:

  • 在所有情况下均不会调用它。 例如,按 Home 或 Back 退出活动将不会导致 调用。

  • 传入 OnSaveInstanceState 的捆绑包不适用于大型对象,例如图像。 对于大型对象,如下面所述,保存 OnRetainNonConfigurationInstance 中的对象更可取。

9. 保留复杂数据   OnRetainNonConfigurationInstance重写OnRetainNonConfigurationInstance   官网有搜索 Twitter 的代码

10 查询当前使用语言Local 

var lang = Resources.Configuration.Locale


//实例
en_US对于英语 (美国)
es_ES 对于西班牙语 (西班牙)
ja_JP 对于日语 (日本)
zh_CN 对于中文 (中国)
zh_TW 对于中文 (台湾)
pt_PT 对于葡萄牙语 (葡萄牙)
pt_BR 对于葡萄牙语 (巴西)

11.  GridView是一个在二维可滚动的网格中展示内容的控件。网格中的内容通过使用adapter自动插入到布局中

android:columnWidth
相关方法setColumnWidth(int)。定义每一列的固定宽度。
必须是dimension值(浮点数后面拼接单位,例如“14.5sp”)。有效的单位有:px,dp,sp,in,mm。
android:gravity
相关方法setGravity(int)。定义每一个单元格的重心。

android:horizontalSpacing
相关方法setHorizontalSpacing(int)。定义了两列之间的水平间隔。
属性设置要求同android:columnWidth
android:numColumns
相关方法setNumColumns(int)。定义了展示的列数。

android:verticalSpacing
相关方法setVerticalSpacing(int)。定义两行之间的垂直间隔。
属性设置要求同android:columnWidth

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值