zoukankan      html  css  js  c++  java
  • Android学习笔记(十三)——碎片(一)

    碎片



    碎片可看作第二种形式的活动,能够创建碎片来包括视图。


    碎片总是嵌入在活动中,一般有两种常见形式:

    1、碎片A和碎片B分别处于不同的活动中,当选择碎片A中的某一项时,触发碎片B启动;

    2、碎片A和碎片B处于同一个活动中,共享同一活动,以创建更佳的用户体验。

    点此下载完整源代码~(代码适用于本文章所讲)


    1、创建一个名为“Fragments”的项目,在res/layout目录下,分别新建fragment1.xml、fragment2.xml;在当前包名下,分别新建Fragment1.java、Fragment2.java:

    fragment1.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#00FF00"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="This is fragment #1"
            android:textColor="#000000"
            android:textSize="25sp" />
    
    </LinearLayout>
    fragment2.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFFE00"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="This is fragment #2"
            android:textColor="#000000"
            android:textSize="25sp" />
    
    </LinearLayout>
    Fragment1.java:

    package net.zenail.fragments;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class Fragment1 extends Fragment {// 继承Fragment基类
    	// 绘制碎片UI:使用一个LayoutInflauter对象来增大指定XML文件里的UI。container參数引用父ViewGroup,准备用于嵌入碎片的活动。
    	// savedInstanceState參数同意将碎片还原到前一次保存的状态。
    	@Override
    	public View onCreateView(LayoutInflater inflater, ViewGroup container,
    			Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		return inflater.inflate(R.layout.fragment1, container, false);
    	}
    }
    


    Fragment2.java:

    package net.zenail.fragments;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class Fragment2 extends Fragment {
    	@Override
    	public View onCreateView(LayoutInflater inflater, ViewGroup container,
    			Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		return inflater.inflate(R.layout.fragment2, container, false);
    	}
    }
    

    2、在main.xml文件里加入两个碎片:

        <fragment
            android:id="@+id/fragment1"
            android:name="net.zenail.fragments.Fragment1"
            android:layout_width="0px"
            android:layout_height="match_parent"
            android:layout_weight="1"
            tools:layout="@layout/fragment1" />
    
        <fragment
            android:id="@+id/fragment2"
            android:name="net.zenail.fragments.Fragment2"
            android:layout_width="0px"
            android:layout_height="match_parent"
            android:layout_weight="1"
            tools:layout="@layout/fragment2" />

    3、执行,效果例如以下:



  • 相关阅读:
    Java中如何实现序列化,有什么意义?
    java中this和super关键字的作用
    java中String类的面试题大全含答案
    java中static关键字的作用
    final和abstract关键字的作用
    Java.util.Map的实现类有那些?
    java.sql.Date和java.util.Date的联系和区别
    Java 的信号灯
    java.lang.ThreadLocal的作用和原理?列举在哪些程序中见过ThreadLocal的使用?
    HashMap是不是有序的?
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4298477.html
Copyright © 2011-2022 走看看