导航:首页 > 使用方法 > 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使用方法相关的资料

热点内容
偏瘫患者喙肱肌锻炼方法 浏览:953
如何判定因式分解用哪种方法 浏览:699
羽悦草本使用方法 浏览:881
企业订单销量优化的方法有哪些 浏览:764
工业企业成本计算方法 浏览:182
大学学习过程中的问题及解决方法 浏览:621
如何散步是正确方法 浏览:852
卡西欧相机使用方法 浏览:706
重庆学校甲醛检测的方法 浏览:973
跑工地的常用方法 浏览:492
2x13简便计算方法 浏览:363
免洗喷雾使用方法 浏览:790
双享号的使用方法 浏览:6
挥发甲醛用什么方法最好 浏览:60
鉴别纯羊毛毛线和腈纶毛线的方法 浏览:83
脑梗抢救的最佳方法 浏览:904
多层板甲醛检测方法 浏览:508
根管的预备方法有哪些 浏览:701
看花的正确方法图片 浏览:244
视频侧方30公分5种方法 浏览:543