[Xamrin]Layout Inflater.Inflateを使用して予め設計されたLayoutにロードして使用します.
10628 ワード
開発する時、必ずいくつかのものを部品に設計して、何度も使うことができます.今日は簡単な方法を記録して、事前に作ったLayoutに載せて、事件のサンプルを紹介します.
CusstControl Layout.axml:
ロードの2番目のボタンを押すと、
References:http://lp43.blogspot.tw/2010/06/xmllayoutviewlayoutinflater.html http://developer.android.com/reference/android/view/LayoutInflater.html http://blog.csdn.net/hwy584624785/article/details/6695301
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Inflate Layout" />
<LinearLayout
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/relativeContainer"
android:orientation="vertical" />
</LinearLayout>
赤い枠の部分は、客制Layoutの置くところに残しておきます.idはcustContinerのLinear Layoutです.予約したLayoutはInflateにここにいます. 客制Layout「ボタンが押された時に、Inflateが客制化された素子からcustContinerまで、さらにこの素子にある事件を紹介します.これは私が客制化したLayoutです. CusstControl Layout.axml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<Button
android:text=" Control "
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btnAssignText" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" Control "
android:id="@+id/editTextContent" />
</LinearLayout>
これは私が設計したゲストです.Layout機能はbtnAsignTextをクリックしてほしいです.Toastができます. edit TextContent 私達はどのようにメインActivityでCust Control LayoutをcustContinerにロードし、イベントを与えるかを見てみます.using System;
using Android.App;
using Android.Widget;
using Android.OS;
namespace TestInflate
{
[Activity(Label = "TestInflate", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
var btn1 = FindViewById<Button>(Resource.Id.btn1);
var custContainer = FindViewById<LinearLayout>(Resource.Id.custContainer);
btn1.Click += delegate
{
// LayoutInflater CustControlLayout custContainer
LayoutInflater.Inflate(Resource.Layout.CustControlLayout, custContainer);
var btnAssignText = FindViewById<Button>(Resource.Id.btnAssignText);
// Id
btnAssignText.Id = new Random().Next(5000, int.MaxValue);
var editTextContent = FindViewById<EditText>(Resource.Id.editTextContent);
// Id
editTextContent.Id = new Random().Next(5000, int.MaxValue);
btnAssignText.Click += delegate
{
Toast.MakeText(this, editTextContent.Text, ToastLength.Short).Show();
};
};
}
}
}
結果:ロードの2番目のボタンを押すと、
References:http://lp43.blogspot.tw/2010/06/xmllayoutviewlayoutinflater.html http://developer.android.com/reference/android/view/LayoutInflater.html http://blog.csdn.net/hwy584624785/article/details/6695301