1. 程式人生 > >Android碎片化Fragment例項一

Android碎片化Fragment例項一

一:內容概覽
我們再android中所說的碎片化也就是針對不同裝置的螢幕大小設計不同的適配方案所說的詞語。一般而言我們就是在開發時針對不同螢幕解析度的裝置適配UI,比如手機和平板。在本小節,我們主要是介紹Fragment的最簡單入門使用方法。
二:主要步驟:
2.1我們首先看一下我們的例項效果圖:

這裡寫圖片描述

我們可以看到在10英寸的螢幕平板中,將當前的Activity(也就是一個活動介面)巢狀兩個Fragment;分為左邊部分和右邊部分。
2.2主要實現邏輯。
在MainActivity中我們巢狀兩個fragment。那麼下面我們就準備好 兩個碎片fragment:left_fragment和right_fragment。並且新建left_fragment.java和right_fragment.java。簡單的程式碼如下:
layout目錄:
left_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@mipmap/stephenchou"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="200dp" android:layout_gravity="center" android:textSize="20sp" android:text="這是左邊"/>
</LinearLayout>

right_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
   android:background="@mipmap/car144205"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="200dp"
        android:text="這是右邊"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="50sp"/>
</LinearLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
//把兩個碎片載入到主頁面
    <fragment
        android:id="@+id/left_fragment"
        android:name="com.shanshui.ynu.myfragment.LeftFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
    <fragment
        android:id="@+id/right_fragment"
        android:name="com.shanshui.ynu.myfragment.RightFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"/>/

</LinearLayout>

Java目錄:
LeftFragment.java

package com.shanshui.ynu.myfragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * Created by Administrator on 2017/12/26/026.
 */

public class LeftFragment extends Fragment {

   //唯一需要重寫的onCreateView()方法
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
         //佈局對映器對映到左邊fragment
        View view = inflater.inflate(R.layout.left_fragment,container,false);
        return view;
    }
}

RightFragment.java

package com.shanshui.ynu.myfragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * Created by Administrator on 2017/12/26/026.
 */

public class RightFragment extends Fragment {
    //唯一需要重寫的onCreateView()方法
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //佈局對映器對映到右邊fragment
        View view = inflater.inflate(R.layout.right_fragment,container,false);
        //返回view值
        return view;
    }
}

MainActivity.java

    package com.shanshui.ynu.myfragment;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

三:總結
在本例項中,我們的簡單例項闡述了碎片化的使用流程。首先需要新建左右兩邊的xml檔案。然後新建左右兩個fragment的類檔案,在此檔案中我們只需要唯一的重寫onCreateView方法。在這個方法中我們只需使用佈局對映器對映到對應xml檔案建立View物件。然後返回給當前重寫函式。
我們這裡實現的簡單例項只是實現了fragment的建立過程,但是沒有實現兩個fragment的動態通訊。下一期我們的內容是動態建立fragment.
歡迎繼續關注,我的個人微信公眾號:BlogShareCenter
這裡寫圖片描述