- 浏览: 229847 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
sfshine:
非常好非常好
Android 窗口管理 -
mthhk:
...
android3.0之Fragment(碎片)基础 -
FrankHB1989:
“C/C++标准不会保证这样的代码一定不会出错”的依据?你要说 ...
Duff's Device -
2006003845:
请问知道 刚体之间怎么不碰撞嘛 ?相互穿插
JBOX2D分析
Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面Android123介绍下Android Fragment的作用和用法。Fragment用来描述一些行为或一部分用户界面在一个Activity中,你可以合并多个fragment在一个单独的activity中建立多个UI面板,同时重用fragment在多个activity中.你可以认为fragment作为一个activity中的一节模块 ,fragment有自己的生命周期,接收自己的输入事件,你可以添加或移除从运行中的activity.
一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity而影响,举个例子吧,当activity暂停,那么所有在这个activity的fragments将被destroy释放。然而当一个activity在运行比如resume时,你可以单独的操控每个fragment,比如添加或删除。
1,先定义2个Fragment,布局文件R.layout.first&R.layout.second根据自己需求随便写一个,我这里就不贴代码了。
Java代码
import android.app.Fragment;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
public class FirstFragment extends Fragment{
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.first, container, false);
registerForContextMenu(root.findViewById(R.id.editText1));
return root;
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(Menu.NONE, 0, Menu.NONE, "菜单1");
menu.add(Menu.NONE, 1, Menu.NONE, "菜单2");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
return super.onContextItemSelected(item);
}
}
Java代码
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class SecondFragment extends Fragment{
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.second, container, false);
}
}
2,在Activity中使用
Java代码
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Honeycomb extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// FirstFragment firstFragment=new FirstFragment();
// //在Activity中通过这个与Fragment通讯
// getFragmentManager().beginTransaction().add(android.R.id.content, firstFragment).commit();
FragmentManager fm = getFragmentManager();
addShowHideListener(R.id.btn_1, fm.findFragmentById(R.id.firstFragment));
addShowHideListener(R.id.btn_2, fm.findFragmentById(R.id.secondFragment));
}
void addShowHideListener(int buttonId, final Fragment fragment) {
final Button button = (Button)findViewById(buttonId);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
//为Fragment设置淡入淡出效果
ft.setCustomAnimations(android.R.animator.fade_in,android.R.animator.fade_out);
if (fragment.isHidden()) {
ft.show(fragment);
button.setText("隐藏");
} else {
ft.hide(fragment);
button.setText("显示");
}
ft.commit();
}
});
}
}
3,布局R.layout.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:name="com.ql.app.FirstFragment"
android:id="@+id/firstFragment"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
/>
<fragment android:name="com.ql.app.SecondFragment"
android:id="@+id/secondFragment"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent"
/>
<Button android:id="@+id/btn_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="隐藏"
/>
<Button android:id="@+id/btn_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="隐藏"
/>
</LinearLayout>
- <?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:name="com.ql.app.FirstFragment"
- android:id="@+id/firstFragment"
- android:layout_weight="1"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- />
- <fragment android:name="com.ql.app.SecondFragment"
- android:id="@+id/secondFragment"
- android:layout_weight="2"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- />
-
- <Button android:id="@+id/btn_1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="隐藏"
- />
- <Button android:id="@+id/btn_2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="隐藏"
- />
- </LinearLayout>
发表评论
-
Java中循环嵌套跳出的高效写法
2014-04-24 19:31 3139(下面写的这些并不是Jdk的新特性,也不是Java某个版本提供 ... -
Android各版本新增功能一览(转)
2013-12-05 20:43 1682Android3.0新增功能:主要增加全息主题 ... -
NotificationManager和Notification的使用总结(转)
2013-11-26 12:51 610这几天一直在修改twig ... -
Android应用程序资源的编译和打包过程分析 (转自老罗的博客)
2013-11-13 10:57 15512我们知道,在一个APK文件中,除了有代码文件之外,还 ... -
Proguard 源码分析 (七) 混淆
2013-11-10 21:19 1789本章我们讲Proguard非常重要的一个步骤:混淆Obfu ... -
Proguard源码分析(六)前文总结
2013-11-05 14:40 1061目前,我们读了Proguard的 ... -
Proguard源码分析(五) ConfigurationParser.keep参数
2013-10-31 14:43 3912本章节我们绕回来讲Keep参数,也就是Configurat ... -
Proguard源码分析(四) 压缩
2013-10-30 10:59 1104上一次我们讲了seed文件,这次我们说压缩,对应的输出文件是 ... -
Proguard源码分析(三)Seed文件
2013-10-29 12:45 1516Seed文件就是保持住的类文件,直白一点就是不被混淆的文件, ... -
Proguard源码分析(二)输出文件
2013-10-28 10:28 896ProGuard outputs thefollowing ... -
Android 2.2.2到Android 4.2.2源码下载地址(转)
2013-10-28 10:13 984Android 2.2.2到Android 4.2.2源码下 ... -
代码混淆器Proguard源码分析(一) 读取
2013-10-22 19:40 2289Proguard是Android中经常用的混淆工具,当然你也 ... -
Android内存之VSS/RSS/PSS/USS
2013-09-25 14:07 679Terms VSS - Vi ... -
chrome开源工程(转)
2013-09-13 10:42 1306在chrome地址栏输入about:credits就可以看 ... -
dex文件结构(转)
2013-09-03 14:10 1005Dex文件和Dalvik虚拟机 在Android系统中 ... -
android clipPath切割画布
2013-08-29 12:00 6220(转自:http://wallage.blog.163.co ... -
Android WebView控件
2013-06-06 11:46 2240android.webkit库聚合了webkit内核的浏览器 ... -
dumpsys命令~(非常有用~)
2013-04-03 12:02 0dumpsys是系统中重要的函数,我们来看看它如何使用,都能 ... -
内存监控命令~
2013-04-03 00:30 0meminfo 命令:cat /proc/meminfo ... -
adb常用命令
2013-04-03 00:17 1084Android 调试桥(adb)是多种用途的工具,该工具可以 ...
相关推荐
Fragment的概念是从Android3.0开始引入的,直译为碎片、片段,目的是为不同屏幕大小的设备(手机、平板等)创建灵活动态的UI。诚如其名,你可以把Fragment当作是Activity的模块化组件,它拥有自己的生命周期和UI,接受...
在Android应用开发中,Fragment(碎片)是一种非常重要的组件,特别是在设计大屏幕设备如平板电脑时,它使得界面布局更加灵活多变。本教程将详细讲解如何在Android Studio中实现一个四分格Fragment的示例。 ...
标题"Fragment碎片"指的是在Android应用中使用Fragment类来创建和管理用户界面组件。通过Fragment,开发者可以在不重新启动Activity的情况下,实现界面的动态切换和更新,提高用户体验。 描述"点击按钮切换不同的...
在"fragment碎片"这个主题中,我们将深入探讨如何利用Fragment构建类似微信那样复杂且互动丰富的界面。 Fragment可以看作是Activity的一部分,它有自己的生命周期和UI视图。它们可以单独存在,也可以与Activity一起...
Fragment是Android应用开发中的一个重要组件,它是在Android 3.0(API级别11)引入的,用于构建可重用的、模块化的用户界面部分。在这个"Fragment实例-Android Studio项目"中,我们可以深入理解Fragment的使用方法...
Fragment是Android应用开发中的一个重要组件,它首次出现在Android 3.0版本(API level 11)中,主要是为了在大屏幕设备如平板电脑上更好地实现界面布局和交互。然而,随着时间的推移,Fragment也成为了手机应用开发...
Fragment是Android系统自3.0版本(API Level 11)引入的一个重要组件,它极大地丰富了应用的界面设计和用户体验。Fragment设计的初衷是为了更好地适应大屏幕设备,如平板电脑,但随着时间的发展,它已经成为Android...
Android 3.0(API级别11)及以上的版本开始支持碎片功能。 描述中提到,碎片的使用方式通常是在平板开发中,开发者首先需要创建一个平板模拟器进行测试。以下是使用碎片的基本步骤: 1. 创建碎片:开发者可以通过...
Fragment,碎片,是Android 3.0之后加入的一个非常重要的概念。每个Fragment都有相应的Activity对它进行托管。一个Activity中可以有多个Fragment,这很自然的给大屏幕的适配提供了很便捷的方案。现在大家在开发中都必...
在Android应用开发中,"碎片"(Fragment)是Android SDK中的一个重要组件,它允许开发者在同一个活动中展示多个可交互的UI部分。这个压缩包文件"android碎片测试程序"显然是一个基于《第一行代码》这本书中的示例...
Fragment是Android3.0新增的概念,中文意思是碎片,它与Activity十分相似,用来在一个 Activity中描述一些行为或一部分用户界面.使用多个Fragment可以在一个单独的Activity中建 立多个UI面板,也可以在多个Activity中...
Fragment是Android应用开发中的一个重要组件,它是在API Level 11(Android 3.0)引入的,主要用于处理大屏幕设备如平板电脑上的界面设计,但后来也成为了智能手机开发的标准部分。Fragment允许开发者将应用程序界面...
Fragment和ActionBar都是Android3.0之后出现的,Fragment,碎片,主要是为了支持更多的UI设计在大屏幕设备上,如平板。因为现在设备的屏幕越来越大,使用Fragment可以更灵活的管理视图层次的变化。像Activity一样,...
在Android 3.0(API级别11)版本引入,Fragment的设计目的是为了更好地支持平板设备的大屏幕布局,但随着时间的推移,它已经成为Android应用开发不可或缺的一部分,无论是在手机还是平板上都被广泛使用。 Fragment...
Fragment(碎片)是一种可以嵌入在Activity中的UI片段,与Activity非常相似,不仅包含布局,同时也具有自己的生命周期 Fragment不能独立存在必须嵌入到Activity中使用,所以Fragment生命周期直接受所在的Activity...
碎片是Android 3.0(API级别11)引入的一个功能,用于支持在大屏幕设备上创建多窗格界面,同时也在小屏设备上提供了更加灵活的布局管理。Fragment是一个可以包含UI元素和业务逻辑的部分,它可以独立于Activity存在,...
在Android应用开发中,"碎片"(Fragment)是Android 3.0(API级别11)引入的一个重要组件,用于支持多屏幕设计和更复杂的用户界面。它允许开发者在一个活动中包含多个可重用的UI部分,这些部分可以独立地进行交互和...