一; 简单Fragment的使用;
效果图;
代码实现:
1), 创建fragment1.xml布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#00FF00"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="This is fragment #1" android:textSize="25sp" /> </LinearLayout>
2,创建fragment2.xml布局文件
<?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" android:background="#FF0000" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="This is fragment #2" android:textSize="25sp" /> </LinearLayout>
3,创建main.xml文件
<?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" > <fragment android:name="com.example.frament.Frament1" 类名的完整地址 android:id="@+id/frament1" android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent" /> <fragment android:name="com.example.frament.Frament2" 类名的完整地址 android:id="@+id/fragment2" android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent" /> </LinearLayout>
4,在com.example.frament包下创建Fragment1
package com.example.frament; import android.annotation.SuppressLint; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @SuppressLint("NewApi") public class Frament1 extends Fragment { @SuppressLint("NewApi") @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.frament1, container,false); } }
5,在com.example.frament包下创建Fragment2
package com.example.frament; import android.annotation.SuppressLint; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @SuppressLint("NewApi") public class Frament2 extends Fragment { @SuppressLint("NewApi") @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.frament2, container,false); } }
6,创建Activity的类MainActivity1(启动类)
public class MainActivity1 extends Activity { @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
分析:
使用fragment来添加碎片需要使用一个类继承Fragment
public class Frament2 extends Fragment { 在ui中绘制,需要重写onCreateView()方法,该方法返回一个View对象,如下所示;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.frament2, container,false); }
使用LayoutInflater 制定布局文件,container参数引用父类 即准备碎片活动 ,savedInstanceState 碎片可以还原到前一次的状态
二;Fragment的动态添加
前五步的代码与上面一样
6,创建Activity的类MainActivity1(启动类)
package com.example.frament; import android.annotation.SuppressLint; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.Display; public class MainActivity1 extends Activity { @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); //向活动添加碎片,根据屏幕的纵向和横向显示 //1,获取碎片管理器 FragmentManager fragment=getFragmentManager(); //2,碎片的显示需要使用FragmentTransaction类操作 FragmentTransaction transacction=fragment.beginTransaction(); //获取屏幕管理器和默认的显示 Display display=getWindowManager().getDefaultDisplay(); //判断横屏 if(display.getWidth()>display.getHeight()){ //获取java类 Frament1 frament1 = new Frament1(); transacction.replace(android.R.id.content, frament1); }else{ Frament2 frament2 = new Frament2(); transacction.replace(android.R.id.content, frament2); } //使用FragmentTransaction必须要commit transacction.commit(); } }
分析:
向活动添加Fragment需要使用FragmentManager类,
FragmentManager fragment=getFragmentManager();
操作fragment需要使用FragmentTransaction进行碎片的添加,删除等操作
FragmentTransaction transacction=fragment.beginTransaction();
获取手机的屏幕
Display display=getWindowManager().getDefaultDisplay();
当前页面替换成 frament1
transacction.replace(android.R.id.content, frament1);
横屏时;
相关推荐
本篇文章将深入讲解如何在Android应用中动态地添加和使用Fragment。 一、Fragment的基本概念 Fragment是Android应用程序中的一个模块化组件,它可以包含一部分用户界面(UI)元素。一个Activity可以包含多个...
本示例“动态使用Fragment简单示例”将详细介绍如何在运行时动态地添加和管理Fragment。 首先,我们需要理解Fragment的基本概念。Fragment是Android应用程序中的一个模块化组件,它可以在Activity中单独存在或者与...
以下是一个简单的动态添加Fragment的步骤: 1. 创建Fragment实例:首先,你需要创建一个Fragment的实例,通常是通过继承Fragment类并重写其必要的方法来实现。 ```java MyFragment myFragment = new MyFragment(); ...
以下是对Fragment简单使用的详细步骤和知识点: 1. **引入依赖**:在Android Studio项目中,确保已经引入了对Android Support Library或者AndroidX库的依赖,因为Fragment是其中的一部分。如果使用AndroidX,需要在...
2. **动态添加Fragment**:在运行时,可以通过FragmentManager和FragmentTransaction动态添加、替换或移除Fragment。例如: ```java FragmentManager manager = getSupportFragmentManager(); FragmentTransaction ...
当滑动下方页面时,标签栏上对应标签会显示出与其他标签不一样的效果。下面就以此为例分析顶部标签栏的基本...下方横线部分可以使用TextView实现。在这里我们采用RadioButton来实现标签栏文字部分,关键代码如下所示。
本教程将深入探讨如何动态地在Activity中添加和管理Fragment,以及如何处理横竖屏切换时Fragment的显示问题。 首先,我们需要理解Fragment的基本结构。一个Fragment通常包含一个布局文件和与之关联的Java类。布局...
以下是创建和添加动态Fragment的步骤: 1. 在Activity的布局文件中,可以不包含Fragment容器,或者包含一个空的容器,如上述的FrameLayout。 2. 创建一个新的Fragment实例,并在需要的时候添加到Activity中: ```...
Fragment的设计理念是让开发者能够更灵活地构建动态和模块化的应用,尤其适用于平板电脑等大屏幕设备。然而,随着版本的迭代,Fragment也逐渐成为手机应用开发中的常见元素。 在Android应用中,Activity通常作为...
- 使用`FragmentManager`和`FragmentTransaction`来管理Fragment的生命周期,确保正确处理添加、移除和替换操作。 - 注意处理Fragment的生命周期方法,如`onCreate()`, `onResume()`, `onPause()`等,以便在合适的...
- 灵活性:可以在运行时动态地添加、移除和替换Fragment。 - 维护简单:由于Fragment可以单独管理其布局和逻辑,因此可以更易于维护和测试。 在Fragment出现之前,开发者通常通过使用多个Activity或者在同一个...
在本例子中,我们将探讨Fragment的静态使用和动态使用方法,以及如何在MainActivity中实现Fragment的静态添加。 1. **Fragment的静态使用**:静态使用Fragment通常意味着在布局XML文件中直接声明Fragment。在布局...
在动态添加Fragment时,通常需要使用FragmentManager和FragmentTransaction对象。FragmentManager用于管理Activity中的所有Fragment,而FragmentTransaction则用于执行对Fragment的操作,例如添加、替换或移除。以下...
以上就是关于“安卓Fragment简单实现”的主要知识点。在实际应用中,开发者还需要考虑如何妥善处理Fragment和Activity之间的协同工作,以及在不同设备和屏幕尺寸上的适配问题。通过熟练掌握Fragment的使用,可以创建...
当ViewPager与Fragment结合使用时,可以创建出具有动态、交互丰富的多页布局。在这个场景中,我们主要探讨如何将ViewPager与Fragment相结合,以实现一个简单的应用案例。 首先,我们需要理解ViewPager的工作原理。...
- 通过在XML布局文件中定义Fragment,或者在Activity的代码中使用FragmentManager和Transaction来动态添加和替换Fragment。 4. **Fragment通信**: - Fragment可以通过回调接口(如OnFragmentInteractionListener...
- 可以通过在布局XML文件中定义<fragment>标签直接添加静态Fragment,或者在代码中使用FragmentManager和FragmentTransaction动态添加。 - 动态添加示例:首先获取FragmentManager,然后开始一个Transaction,通过...
本教程将深入探讨ViewPager与Fragment的联合使用,帮助你构建更加动态且交互丰富的应用界面。 首先,我们需要理解ViewPager的基本用法。ViewPager继承自ViewGroup,它的核心功能是展示一系列的View,这些View通常由...
本文将深入探讨如何动态添加`RadioButton`并实现根据用户选择切换`Fragment`的功能。 首先,我们需要理解`RadioButton`的工作原理。`RadioButton`是`Button`的一种特殊形式,它属于`RadioGroup`的一部分。在`...