Fragment的使用,有两种方式:静态的使用和动态的使用Fragment
作为初学者,我先从最简单的方式开始,即如何在Xamarin.Android里面静态的使用Fragment
1 开始之初,先解答一下我们为什么要使用Fragment?
Android运行在各种各样的设备上,除了手机,还有平板等设备,那么不同的设备屏幕类型是有很大差异的,难道无法做到一个App可以同时适应手机和平板么?这个时候Fragment就很好的解决了这个问题。
2 进入正题,看看如何使用Fragment
(1) 首先建立一个叫fragment1的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"
android:background="#434A5A">
<ImageButton
android:id="@+id/id_title_left_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="3dp" />
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="看这里,这里!"
android:textColor="#fff"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
(2) 新建一个命名为Fragement的文件夹,新建一个命名为FragmentTest1的类文件
public class FragmentTest1 : Fragment
{
private ImageButton mLeftMenu;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var view = inflater.Inflate(Resource.Layout.fragment1, container, false);
mLeftMenu = (ImageButton) view.FindViewById(Resource.Id.id_title_left_btn);
mLeftMenu.Click += (object sender, EventArgs e) =>
{
Toast.MakeText(Activity, "我是一个图片! ", ToastLength.Short).Show();
};
return view;
}
}
接下来,我们就可以在Main.axml里面使用Fragement了
<?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">
<fragment
android:id="@+id/id_fragment_title"
android:name="_1111_Test.Fragement.FragmentTest1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
把Fragment当成普通的View一样声明在Activity的布局文件中,然后所有控件的事件处理等代码都由各自的Fragment去处理~~代码的可读性、复用性以及可维护性瞬间提升了
运行结果: