本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 1.先布局实现mian.xml <?xml version="1.0" encoding="utf-8"? " android:gravity="center"/ </RadioGroup </RelativeLayout 2.创建3个fragment 要继承Fragment类v4 LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //引入布局文件 相对应的布局文件 <? android.content.Context; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager
使用Fragment还有这么几个方面优势: 代码复用。特别适用于模块化的开发,因为一个Fragment可以被多个Activity嵌套,有个共同的业务模块就可以复用了,是模块化UI的良好组件。 Activity用来管理Fragment。Fragment的生命周期是寄托到Activity中,Fragment可以被Attach添加和Detach释放。 可控性。 Fragment可以像普通对象那样自由的创建和控制,传递参数更加容易和方便,也不用处理系统相关的事情,显示方式、替换、不管是整体还是部分,都可以做到相应的更改。 我们直接加一个LinearLayout起名为login_fragment LoginActivity ? 关键代码 ? 然后SetLoginType函数就是用于根据不同的类型切换我们的fragment的效果。 ---- 账号登陆 fragment_login_input.xml ? ?
领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折
本文实例为大家分享了android点击按钮切换不同布局的具体代码,供大家参考,具体内容如下 先上效果图: ? 如图所示,实现点击下面的按钮切换不同的fragment布局; 不说了,先上主MainActivity代码: MainActivity.java: package com.example.xh.twostylefragment ; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentTransaction ; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button ; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View
center_horizontal" android:textSize="20sp" android:text="This is right fragment <fragment android:id="@+id/left_fragment" android:name="com.example.fragmenttest.LeftFragment ="1"/> <fragment android:id="@+id/right_fragment" android:name="com.example.fragmenttest.RightFragment transaction = fragmentManager.beginTransaction(); // 第一个参数在主布局替换的位置 fragment transaction.replace 使用最小宽度限定符 在res目录下新建layout-sw600dp 大于600dp 会执行目录下的布局
Fragment在Android 3.0( API 11)引入,是为了支持在大屏上显示更加动态、灵活的UI,比如在平板和电视上。 Fragment可以看作是嵌套的Activity,类似ActivityGroup,但是开销肯定没有ActivityGroup那么大,每一个Fragment管理着一个View,Fragment彼此之间相互独立 然后当Activty进入运行状态onResume后,你可以独立的管理每一个Fragment,可以add一个Fragment,也可以remove一个Fragment。 在你执行一个Fragment事务的时候(创建并且显示出来),你可以把这个Fragment放到Fragment回退栈中,这个回退栈记录了所有你执行过的Fragment事务,用户在点击返回键的时候可以从Fragment Fragment的生命周期: 如果你很清楚Activity的生命周期那么Fragment的生命周期就很容易理解,在Fragment中有很多类似Activity生命周期函数的回调方法,这些方法由Android
什么是Fragment 自从Android 3.0中引入fragments 的概念,根据词海的翻译可以译为:碎片、片段。其目的是为了解决不同屏幕分辩率的动态和灵活UI设计。 fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activity 的外观,并且由activity 当一个片段指定了自身的布局时,它能和其他片段配置成不同的组合,在活动中为不同的屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多)。 Fragment做局部内容更新更方便,原来为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragment来代替,只有在需要的时候才加载Fragment,提高性能。 因为Fragment对象所依附的Activity对象被挂起,或者在Activity中正在执行一个修改Fragment对象的操作,而导致Fragment对象不再跟用户交互时,系统会调用Fragment对象的
理由如下: android.app.Fragment 兼容的最低版本是android:minSdkVersion="11" 即3.0版;android.support.v4.app.Fragment 兼容的最低版本是 android:minSdkVersion="4" 即1.6版。 2.避免Fragment重复创建和解决Fragment重叠导致的花屏问题 这里我们来看做一下对比: 因为两个问题实际是是一个问题所以我们一起讲。 1. 解决重复创建Fragment ? 避免重复创建Fragment 大家可以看到这两张图最明显的区别就是:给Fragment设置了Tag,避免Fragment进行重建的方式就是设置Tag,判断如果该Fragment为空就创建新的,否则根据Tag 2.解决activity被回收出现Fragment重叠问题。 我相信大家在开发过程中不止一个Fragment吧,所以我们一定会记录用户点击Fragment的上一次和当前Framgment对应的下标。
fragment, String tag) { FragmentTransaction beginTransaction = mFragmentManager.beginTransaction (); beginTransaction.add(R.id.login_content, fragment, tag); // 添加到回退栈,并定义标记 keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // 获取当前回退栈中的Fragment int backStackEntryCount = mFragmentManager.getBackStackEntryCount(); // 回退栈中至少有多个fragment (mFragmentManager.getBackStackEntryCount() - 1); // 获取当前栈顶的Fragment的标记值
没有布局的Fragment有何用处? ,把Fragment当成普通的控件,直接写在Activity的布局文件中。 步骤: 1、继承Fragment,重写onCreateView决定Fragemnt的布局 2、在Activity中声明此Fragment,就当和普通的View一样 下面展示一个例子(我使用2个Fragment 作为Activity的布局,一个Fragment用于标题布局,一个Fragment用于内容布局): TitleFragment的布局文件: <? 4、动态的使用Fragment 上面已经演示了,最简单的使用Fragment的方式~下面介绍如何动态的添加、更新、以及删除Fragment 为了动态使用Fragment,我们修改一下Actvity的布局文件
image.png Fragment Fragment:是Android3.0开始新增的概念,意为碎片。Fragment是依赖于Activity的,不能独立存在的。 一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity的影响。本质上会产生一个FrameLayout,它加载的布局为其子布局。 可适配:根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,这样用户体验更好。 Fragment的生命周期 ? 方法 为Fragment创建视图(加载布局)时调用(给当前的fragment绘制UI布局,可以使用线程更新UI) onActivityCreated方法 当Activity中的onCreate方法执行完后调用 (表示activity执行oncreate方法完成了的时候会调用此方法) onDestroyView方法 Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局) onDetach
在写一个音乐播放器的时候,用到了fragment,结果在需要返回Fragment的方法里面,无法将Fragment1(Fragment的子类)强制转换成Fragment, 很是纳闷,我是参照一个开源代码来做的 ,源码里面很正常,我这里却报错, 后来才发现,是对包的导入出现了差错,在Fragment1中导入的是android.app.Fragment 而在出错的那个类里面是用android.support.v4 .app.Fragment,包不同当然无法转换 后来统一导入为android.support.v4.app.Fragment之后就正常了.
Android动态添加Fragment 效果图如下: ? image 项目结构图如下: ? image Fragment1: package com.demo.dongtaifragment; import android.app.Fragment; import android.os.Bundle ; import android.view.View; import android.view.ViewGroup; public class Fragment2 extends Fragment { : package com.demo.dongtaifragment; import android.app.Fragment; import android.os.Bundle; import android.support.annotation.NonNull ; import android.view.ViewGroup; public class Fragment2 extends Fragment { //显示faragemnt1 自己要显示的内容
然后每个”小Activity”又能够拥有自己的布局。这就是Fragment碎片技术。 能够把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity执行的时候能够载入或者移除Fragment模块。 能够把Fragment设计成能够在多个Activity中复用的模块。 当开发的应用程序同一时候适用于平板电脑和手机时。能够利用Fragment实现灵活的布局,改善用户体验。 Activity与Fragment生命周期对照图 三、两个简单实例 简单的Fragment练习,Activity与Fragment通信 布局文件activity_main.xml 比較好看的demo,模仿微信主页面 碎片布局文件fragment_1,2,3,4,5.xml <?xml version="1.0" encoding="utf-8"?
现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到 在开始之前,首先你必须已经了解Fragment的用法了,如果你对Fragment还比较陌生的话,建议先去阅读我前面的一篇文章 Android Fragment完全解析,关于碎片你所需知道的一切 。 下面开始编程工作,这里我们首先需要去编写一个类似于QQ的主界面,当然只会去编写界面最下方的TabHost部分,而不会编写上面的内容界面部分,因为内容界面是应该写在Fragment的布局里的。 既然是等分成了四分,那接下来我们自然要去分别实现四个Fragment和它们的布局了。新建一个message_layout.xml作为消息界面的布局,代码如下所示: <? 然后要去创建对应这个布局的Fragment。
Fragment初探 为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局。 新建一个项目叫做Fragments,然后在layout文件夹下新建一个名为fragment1.xml的布局文件: <LinearLayout xmlns:android="http://schemas.android.com , container, false); } } 然后打开或新建activity_main.xml作为主Activity的布局文件,在里面加入两个Fragment的引用,使用android onDestroyView方法:Fragment中的布局被移除时调用。 onDetach方法:Fragment和Activity解除关联的时候调用。 还是在第一节代码的基础上修改,首先打开fragment2.xml,在这个布局里面添加一个按钮: <LinearLayout xmlns:android="http://schemas.android.com
GrXxActivity.this,MyActivityFragment.class); show.putExtra(“grxx”,1); startActivity(show); finish(); break; //二、这个是fragment System.out.println(“aaa”+id); if(id==1){ transaction.replace(R.id.zlayout, showFragment); //这里是指定跳转到指定的fragment
碎片的简单用法 在一个活动中添加两个碎片,两个碎片平分活动空间 1.新建一个左侧碎片布局left_fragment.xml,这个布局只放置了一个按钮,并让他水平对齐。 2.然后再建一个右侧碎片布局right_fragment.xml 3.新建一个LeftFragment类,让他继承自Fragment. 这里使用suppore-v4包。 可以让所有的android 系统版本保持功能一致性,如果说你使用的是系统内置低的Fragment,那么4.2之前的设备运行就会奔溃,虽然说现在基本找不到4.2之前的设备。。。 上面这里重写了Fragment的onCreateView()方法,然后在这个方法中通过LayoutInflater的inflate()方法将刚才定义的left_fragment布局动态加载进来。 5.然后修改activity_main.xml中的代码 这里使用<fragment>标签在布局中添加碎片。注意这里还需要显式的指明要添加的碎片类名,一定也要将类的包名带上。
二、Fragment的作用 Android Fragment 真正的完全解析(上) - Hongyang - 博客频道 - CSDN.NET 三、Fragment的简单应用 inflater.inflate (R.layout.left_fragment,container,false) Fragment中 inflater.inflate参数的血的教训 - Armsterlong的专栏 生命周期 Android Fragment 真正的完全解析(上) - Hongyang - 博客频道 - CSDN.NET 六、Qualifiers限定符及屏幕适配: sw-xxxx-dp - 博客频道 - CSDN.NET Android屏幕适配小技巧swdp - 路,在脚下! - 博客频道 - CSDN.NET android屏幕适配详解 - Summers - 博客园 综合:android之Fragment(官网资料翻译) - 傲慢的上校的专栏 - 博客频道
云游戏(GS)拥有稳定低延时的音视频能力,配合腾讯云丰富的边缘计算节点和灵活的 GPU 虚拟化技术,为云游戏开发者提供一站式端游+手游 PaaS 方案。
扫码关注腾讯云开发者
领取腾讯云代金券