`
百合不是茶
  • 浏览: 354727 次
社区版块
存档分类
最新评论

Fragment的简单使用和动态添加

阅读更多

 

 一;  简单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);

 

 

 

横屏时;

 

  • 大小: 19.6 KB
  • 大小: 22.5 KB
  • 大小: 15.1 KB
  • 大小: 18.7 KB
0
4
分享到:
评论

相关推荐

    Android Fragment的简单使用(动态添加)

    本篇文章将深入讲解如何在Android应用中动态地添加和使用Fragment。 一、Fragment的基本概念 Fragment是Android应用程序中的一个模块化组件,它可以包含一部分用户界面(UI)元素。一个Activity可以包含多个...

    动态使用Fragment简单示例

    本示例“动态使用Fragment简单示例”将详细介绍如何在运行时动态地添加和管理Fragment。 首先,我们需要理解Fragment的基本概念。Fragment是Android应用程序中的一个模块化组件,它可以在Activity中单独存在或者与...

    Fragment的动态添加以及数据传输分析

    以下是一个简单的动态添加Fragment的步骤: 1. 创建Fragment实例:首先,你需要创建一个Fragment的实例,通常是通过继承Fragment类并重写其必要的方法来实现。 ```java MyFragment myFragment = new MyFragment(); ...

    Fragment的简单使用

    以下是对Fragment简单使用的详细步骤和知识点: 1. **引入依赖**:在Android Studio项目中,确保已经引入了对Android Support Library或者AndroidX库的依赖,因为Fragment是其中的一部分。如果使用AndroidX,需要在...

    Android Fragment的简单使用(静态添加)

    2. **动态添加Fragment**:在运行时,可以通过FragmentManager和FragmentTransaction动态添加、替换或移除Fragment。例如: ```java FragmentManager manager = getSupportFragmentManager(); FragmentTransaction ...

    简单的Fragment动态添加.zip

    当滑动下方页面时,标签栏上对应标签会显示出与其他标签不一样的效果。下面就以此为例分析顶部标签栏的基本...下方横线部分可以使用TextView实现。在这里我们采用RadioButton来实现标签栏文字部分,关键代码如下所示。

    Android Fragment的简单使用(动态)

    本教程将深入探讨如何动态地在Activity中添加和管理Fragment,以及如何处理横竖屏切换时Fragment的显示问题。 首先,我们需要理解Fragment的基本结构。一个Fragment通常包含一个布局文件和与之关联的Java类。布局...

    fragment静态动态两种用法

    以下是创建和添加动态Fragment的步骤: 1. 在Activity的布局文件中,可以不包含Fragment容器,或者包含一个空的容器,如上述的FrameLayout。 2. 创建一个新的Fragment实例,并在需要的时候添加到Activity中: ```...

    简单的使用Fragment

    Fragment的设计理念是让开发者能够更灵活地构建动态和模块化的应用,尤其适用于平板电脑等大屏幕设备。然而,随着版本的迭代,Fragment也逐渐成为手机应用开发中的常见元素。 在Android应用中,Activity通常作为...

    Fragment动态加载和静态加载

    - 使用`FragmentManager`和`FragmentTransaction`来管理Fragment的生命周期,确保正确处理添加、移除和替换操作。 - 注意处理Fragment的生命周期方法,如`onCreate()`, `onResume()`, `onPause()`等,以便在合适的...

    使用fragment创建动态UI

    - 灵活性:可以在运行时动态地添加、移除和替换Fragment。 - 维护简单:由于Fragment可以单独管理其布局和逻辑,因此可以更易于维护和测试。 在Fragment出现之前,开发者通常通过使用多个Activity或者在同一个...

    fragment的简单例子

    在本例子中,我们将探讨Fragment的静态使用和动态使用方法,以及如何在MainActivity中实现Fragment的静态添加。 1. **Fragment的静态使用**:静态使用Fragment通常意味着在布局XML文件中直接声明Fragment。在布局...

    Fragment动态添加与管理demo

    在动态添加Fragment时,通常需要使用FragmentManager和FragmentTransaction对象。FragmentManager用于管理Activity中的所有Fragment,而FragmentTransaction则用于执行对Fragment的操作,例如添加、替换或移除。以下...

    安卓Fragment简单实现

    以上就是关于“安卓Fragment简单实现”的主要知识点。在实际应用中,开发者还需要考虑如何妥善处理Fragment和Activity之间的协同工作,以及在不同设备和屏幕尺寸上的适配问题。通过熟练掌握Fragment的使用,可以创建...

    ViewPager与Fragment结合的简单使用

    当ViewPager与Fragment结合使用时,可以创建出具有动态、交互丰富的多页布局。在这个场景中,我们主要探讨如何将ViewPager与Fragment相结合,以实现一个简单的应用案例。 首先,我们需要理解ViewPager的工作原理。...

    Android Fragment实例

    - 通过在XML布局文件中定义Fragment,或者在Activity的代码中使用FragmentManager和Transaction来动态添加和替换Fragment。 4. **Fragment通信**: - Fragment可以通过回调接口(如OnFragmentInteractionListener...

    fragment的简单使用,可直接运行

    - 可以通过在布局XML文件中定义&lt;fragment&gt;标签直接添加静态Fragment,或者在代码中使用FragmentManager和FragmentTransaction动态添加。 - 动态添加示例:首先获取FragmentManager,然后开始一个Transaction,通过...

    viewpager和fragment的联合使用

    本教程将深入探讨ViewPager与Fragment的联合使用,帮助你构建更加动态且交互丰富的应用界面。 首先,我们需要理解ViewPager的基本用法。ViewPager继承自ViewGroup,它的核心功能是展示一系列的View,这些View通常由...

    动态添加RadioButton并切换Fragment

    本文将深入探讨如何动态添加`RadioButton`并实现根据用户选择切换`Fragment`的功能。 首先,我们需要理解`RadioButton`的工作原理。`RadioButton`是`Button`的一种特殊形式,它属于`RadioGroup`的一部分。在`...

Global site tag (gtag.js) - Google Analytics