導航:首頁 > 使用方法 > fragment使用方法

fragment使用方法

發布時間:2023-08-17 10:53:56

如何使用Fragment與數據綁定

fragment可以在xml中添加,也可以直接新建ListViewFragemnt extends Fragment ,在這種方法的OnCreateView方法中,使用layoutinflator載入xml文件View,返回View,然後就是根據View去初始化ListView,數據直接從資料庫取出,在適配器Adapter中更新顯示數據。

Ⅱ android fragment多窗口怎麼使用

、Fragment的產生與介紹

關於fragment的實例,請參考android學習手冊,android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,

源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,圖標上有貝殼。

Android運行在各種各樣的設備中,有小屏幕的手機,超大屏的平板甚至電視。針對屏幕尺寸的差距,很多情況下,都是先針對手機開發一套App,然後拷貝一份,修改布局以適應平板神馬超級大屏的。難道無法做到一個App可以同時適應手機和平板么,當然了,必須有啊。Fragment的出現就是為了解決這樣的問題。你可以把Fragment當成Activity的一個界面的一個組成部分,甚至Activity的界面可以完全有不同的Fragment組成,更帥氣的是Fragment擁有自己的生命周期和接收、處理用戶的事件,這樣就不必在Activity寫一堆控制項的事件處理的代碼了。更為重要的是,你可以動態的添加、替換和移除某個Fragment。

2、Fragment的生命周期


Fragment必須是依存與Activity而存在的,因此Activity的生命周期會直接影響到Fragment的生命周期。官網這張圖很好的說明了兩者生命周期的關系:


可以看到Fragment比Activity多了幾個額外的生命周期回調方法:
onAttach(Activity)
當Fragment與Activity發生關聯時調用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
創建該Fragment的視圖
onActivityCreated(Bundle)
當Activity的onCreate方法返回時調用
onDestoryView()
與onCreateView想對應,當該Fragment的視圖被移除時調用
onDetach()
與onAttach相對應,當Fragment與Activity關聯被取消時調用
注意:除了onCreateView,其他的所有方法如果你重寫了,必須調用父類對於該方法的實現,

3、靜態的使用Fragment

嘿嘿,終於到使用的時刻了~~

這是使用Fragment最簡單的一種方式,把Fragment當成普通的控制項,直接寫在Activity的布局文件中。步驟:

1、繼承Fragment,重寫onCreateView決定Fragemnt的布局

2、在Activity中聲明此Fragment,就當和普通的View一樣

下面展示一個例子(我使用2個Fragment作為Activity的布局,一個Fragment用於標題布局,一個Fragment用於內容布局):

TitleFragment的布局文件:


[html] view plain print?

<?xmlversion="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="45dp"

android:background="@drawable/title_bar">

<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"

android:background="@drawable/showleft_selector"/>

<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"/>

</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@drawable/title_bar" >

<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"
android:background="@drawable/showleft_selector" />

<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" />

</RelativeLayout>

TitleFragment



[java] view plain print?

packagecom.zhy.zhy_fragments;

importandroid.app.Fragment;

importandroid.os.Bundle;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.view.ViewGroup;

importandroid.widget.ImageButton;

importandroid.widget.Toast;

{

privateImageButtonmLeftMenu;

@Override

publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,

BundlesavedInstanceState)

{

Viewview=inflater.inflate(R.layout.fragment_title,container,false);

mLeftMenu=(ImageButton)view.findViewById(R.id.id_title_left_btn);

mLeftMenu.setOnClickListener(newOnClickListener()

{

@Override

publicvoidonClick(Viewv)

{

Toast.makeText(getActivity(),

"!",

Toast.LENGTH_SHORT).show();

}

});

returnview;

}

}

package com.zhy.zhy_fragments;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.Toast;

public class TitleFragment extends Fragment
{

private ImageButton mLeftMenu;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_title, container, false);
mLeftMenu = (ImageButton) view.findViewById(R.id.id_title_left_btn);
mLeftMenu.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Toast.makeText(getActivity(),
"i am an ImageButton in TitleFragment ! ",
Toast.LENGTH_SHORT).show();
}
});
return view;
}
}


同理還有ContentFragment的其布局文件:



[html] view plain print?

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center"

android:text="使用Fragment做主面板"

android:textSize="20sp"

android:textStyle="bold"/>

</LinearLayout>

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

<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="使用Fragment做主面板"
android:textSize="20sp"
android:textStyle="bold" />

</LinearLayout>

[java] view plain print?

packagecom.zhy.zhy_fragments;

importandroid.app.Fragment;

importandroid.os.Bundle;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.ViewGroup;

{

@Override

publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,

BundlesavedInstanceState)

{

returninflater.inflate(R.layout.fragment_content,container,false);

}

}

package com.zhy.zhy_fragments;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class ContentFragment extends Fragment
{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
return inflater.inflate(R.layout.fragment_content, container, false);
}

}


MainActivity



[java] view plain print?

packagecom.zhy.zhy_fragments;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.Window;

{

@Override

protectedvoidonCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

}

}

package com.zhy.zhy_fragments;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

public class MainActivity extends Activity
{

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

}


Activity的布局文件:



[java] view plain print?

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent">

<fragment

android:id="@+id/id_fragment_title"

android:name="com.zhy.zhy_fragments.TitleFragment"

android:layout_width="fill_parent"

android:layout_height="45dp"/>

<fragment

android:layout_below="@id/id_fragment_title"

android:id="@+id/id_fragment_content"

android:name="com.zhy.zhy_fragments.ContentFragment"

android:layout_width="fill_parent"

android:layout_height="fill_parent"/>

</RelativeLayout>

閱讀全文

與fragment使用方法相關的資料

熱點內容
高中遇到困難和解決的方法 瀏覽:739
防爆膜問題及解決方法 瀏覽:868
偏癱患者喙肱肌鍛煉方法 瀏覽:953
如何判定因式分解用哪種方法 瀏覽:699
羽悅草本使用方法 瀏覽:881
企業訂單銷量優化的方法有哪些 瀏覽:764
工業企業成本計算方法 瀏覽:182
大學學習過程中的問題及解決方法 瀏覽:621
如何散步是正確方法 瀏覽:852
卡西歐相機使用方法 瀏覽:706
重慶學校甲醛檢測的方法 瀏覽:973
跑工地的常用方法 瀏覽:492
2x13簡便計算方法 瀏覽:363
免洗噴霧使用方法 瀏覽:790
雙享號的使用方法 瀏覽:6
揮發甲醛用什麼方法最好 瀏覽:60
鑒別純羊毛毛線和腈綸毛線的方法 瀏覽:83
腦梗搶救的最佳方法 瀏覽:904
多層板甲醛檢測方法 瀏覽:508
根管的預備方法有哪些 瀏覽:701