乐虎游戏|乐虎国际登录|欢迎你

Android Fragment 剖析

日期:2020-05-05编辑作者:计算机资讯

内容摘要

正文出自 Eddy Wiki ,转发请注解出处:http://eddy.wiki/interview-android.html

计算机 11.Fragment怎么样发生?2.哪些是Fragment

本节上马解说Android开采的技艺细节,大家第一讲明分界面显得部分,那根本是为了满意成品经营做原型的急需,小编相信不管多么强盛的成品设计软件,都没办法把您的主见兑现到手机上实践,并且能够决定分界面包车型地铁按键和跳转逻辑。

本文搜聚整理了 Android 面试中会碰着与 Android 知识相关的简述题。

Android运营在百端待举的配备中,有小屏幕的手提式有线电话机,相当大屏的刚强甚至电视机。针对显示器尺寸的差距,超多意况下,都以先针对手提式有线电话机开拓一套App,然后拷贝一份,改过布局以适应平板神白小白级大屏的。难道不能够到位三个App能够并且适应手提式有线电话机和平板么,当然了,必需有啊。Fragment的现身正是为了消除那样的难点。你能够把Fragment当成Activity的多少个分界面包车型客车一个组成都部队分,以至Activity的界面能够完全有不相同的Fragment组成,更俊秀的是Fragment具备和睦的生命周期和吸收接纳、管理客户的风云,这样就无须在Activity写一批控件的事件管理的代码了。更为主要的是,你能够动态的拉长、替换和移除有些Fragment。

但是假诺通晓Android开垦中的两大控件, 足以知足你开始的一段年代的产物原型开辟,把分界面逻辑和原型制作成一个简易应用程式,显示效果会特别不相像。

基本概念

 3.Fragment生命周期

Android控件--Activity

Android 的第四次全国代表大会组件

Acitivity、Service、BroadcastReceiver、ContentProvider

Activity :

应用程序中,三个Activity平时正是叁个独自的荧屏,它上边能够突显一些控件也能够监听并拍卖客商的风浪做出响应。

布罗兹castReceiver广播选拔器:

应用程序能够选用它对外表事件举办过滤只对感兴趣的外界事件(如当电话呼入时,可能数据网络可用时State of Qatar实行收纳并做出响应。广播选拔器未有顾客分界面。然则,它们能够运行多个activity或serice 来响应它们收到的信息,或许用NotificationManager 来通告顾客。通告能够用很各样措施来吸援客户的集中力──闪动背灯、震憾、播放音响等。经常的话是在状态栏上放二个同心同德的Logo,顾客可以张开它并赢得音信。

Service 服务:

一个Service是一段长生命周期的,未有客户分界面包车型大巴顺序,能够用来支付如监察和控制类程序。

Content Provider内容提供者 :

android平台提供了Content Provider使叁个应用程序的钦命数据集提必要此外应用程序。那个数据能够储存在文件系统中、在叁个SQLite数据库、或以任何其余合理的法子。别的应用能够透过ContentResolver类(见ContentProviderAccessApp例子卡塔尔从该内容提供者中拿走或存入数据.(相当于在应用外包了一层壳卡塔尔国,独有供给在八个应用程序间分享数据是才必要内容提供者。比如,通信录数据被多个应用程序使用,且必须存款和储蓄在一个剧情提供者中。它的益处:统一数据访谈情势。

计算机,参考:

Android四大主导组件介绍与生命周期

Fragment必需是水保与Activity而留存的,因而Activity的生命周期会直接影响到Fragment的生命周期。官方网站那张图很好的求证了双方生命周期的涉嫌:

Android控件-- Service

四大组件的切切实时间效益果以致用法

  • Acitivity 用于体现界面,采纳客户输入,和客户人机联作。
  • Service运转于后台无界面包车型客车程序,用于在后台达成一下任务,比如:音乐广播等。
  • 布罗兹Cast Receiver 接受系统或采用发出的播报并作出响应,比方:电话的呼入呼出等。
  • Content Provider 用于把应用程式本人的多中国少年共产党享给别的应用软件,提供本应用软件数据的存取接口给此外应用软件。

计算机 2能够看看Fragment比Activity多了几个附加的生命周期回调方法:
onAttach(Activity)
当Fragment与Activity发生关系时调用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法重返时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被吊销时调用
注意:除了onCreateView,其余的装有办法倘令你重写了,必需调用父类对于该方法的兑现

Activity

Android平台的framework的档案的次序布局?

应用层、应用框架层、中间件(大旨库和周转时)、Linux内核

4.什么静态和动态的施用Fragment

首先来感觉认知一下Activity。

Activity

静态使用:

计算机 3计算机 4

Activity 生命周期

计算机 5

  • 启动Activity:onCreate->onStart->onResume
  • 锁屏或被别的Activity覆盖:onPause->onStop
  • 解锁或由被掩瞒情形再回去前台:onRestart->onStart->onResume
  • 跳转到别的Activity或按Home进入后台:onPause->onStop
  • 付之东流到此Activity:onRestart->onStart->onResume
  • 退出此Activity:onPause->onStop->onDestory
  • 对话框弹出不会试行此外生命周期(注:对话框要是是Activity(Theme为DialogState of Qatar,依旧会施行生命周期的卡塔尔国
  • 从A跳转到B:当B的核心为透明时,A只会进行onPause(A-onPause->B-(onCreate->onStart->onResume卡塔尔)
  • 从A跳转到B:A-onPause->B-(onCreate->onStart->onResumeState of Qatar-A-onStop(注意是A执行onPause后开头施行B的生命周期,B实施onResume后,A才施行onStop,所以尽量不要在onPause中做耗费时间操作卡塔尔(قطر‎
  • 从B返回到A:B-onPause->A-(onRestart->onStart->onResume)-B-(onStop->onDestroy)

那是利用Fragment最简单易行的一种方法,把Fragment当成普通的控件,直接写在Activity的构造文件中。步骤:

那是自作者手机上《新浪》的八个分界面,那多少个分界面正是通过Activity显示的,在Activity里面你能够增多图片,图片的零器件叫做ImageView,全部内容罗列在五个表单中,表单的组件叫做ListView。这一个称得上View的零器件能够相互嵌套构造,他们最终都显得在Activity的构造中。

Activity和Fragment生命周期有怎么样?

Activity——onCreate->onStart->onResume->onPause->onStop->onDestroy

Fragment——onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume->onPause->onStop->onDestroyView->onDestroy->onDetach

 

这么些零部件名称都以Android境况下的称呼,在IOS遇到中也会有对应的组件,只是名称有所分歧,用法也稍有差别,比如列表在IOS被称作TableView,而用法上,Android利用XML的结构文件表达ListView的体裁恐怕间接用代码完结ListView的样式,而IOS则用StoryBoard直接编辑构造依然用代码达成,

Activity多样运营方式的区分(LanchMode 的应用处景)

  • standard 模式

那是暗中认可格局,每一回激活Activity时都会创设Activity实例,并归入任务栈中。

  • singleTop 模式

假如在任务的栈顶正巧存在该Activity的实例,就录取该实例( 会调用实例的 onNewIntent(State of QatarState of Qatar,不然就能够制造新的实例并放入栈顶,固然栈中已经存在该Activity的实例,只要不在栈顶,都会创设新的实例。

  • singleTask 模式

如若在栈中已经有该Activity的实例,就选定该实例(会调用实例的 onNewIntent(卡塔尔国卡塔尔。重用时,会让该实例回到栈顶,因而在它上边的实例将会被移出栈。如果栈中不设有该实例,将会成立新的实例放入栈中。

  • singleInstance 模式

在三个新栈中创制该Activity的实例,并让四个应用分享该栈中的该Activity实例。一旦该方式的Activity实例已经存在于有个别栈中,任何利用再激活该Activity时都会引用该栈中的实例( 会调用实例的 onNewIntent(State of QatarState of Qatar。其效果一定于多个使用分享二个应用,不管什么人激活该 Activity 都会进来同贰个采取中。

安装运维形式的职务在 AndroidManifest.xml 文件中 Activity 成分的 Android:launchMode 属性。

singleTop切合选择文告运维的内容展现页面。举个例子,某些音讯顾客端的情报内容页面,倘诺接到15个新闻推送,每一趟都开垦八个资源音信内容页面是很可恶的。

singleTask相符充作程序入口点。举个例子浏览器的主分界面。不管从多少个应用运行浏览器,只会运转主分界面一次,别的处境都会走onNewIntent,並且会清空主分界面上面包车型大巴别的页面。

singleInstance应用途景:闹铃的响铃分界面。 你在此以前设置了三个闹铃:深夜6点。在中午5点58分,你运行了闹铃设置分界面,并按 Home 键回桌面;在凌晨5点59分时,你在Wechat和相恋的人闲谈;在6点时,闹铃响了,并且弹出了叁个会话框格局的 Activity(名叫 AlarmAlertActivity卡塔尔(قطر‎ 提醒您到6点了(那些 Activity 正是以 SingleInstance 加载形式展开的卡塔尔,你按再次回到键,回到的是Wechat的谈心分界面,那是因为 AlarmAlertActivity 所在的 Task 的栈独有他多个因素, 由此退出之后这么些Task 的栈空了。若是是以 SingleTask 打开AlarmAlertActivity,那么当闹铃响了的时候,按再次回到键应该步向闹铃设置界面。

1、继承Fragment,重写onCreateView决定Fragemnt的布局

最新的Android Studio虽说也得以一贯图形化编辑页面布局,不过以后的品级还非常不够成熟,提议首先使用XML文件编制布局,恐怕再过多少个版本的迭代,Android Studio也得以像IOS的Xcode那样直接图形化编辑页面布局。

Activity中就疑似onCreate、onStart运用了哪个种类设计形式,优点是怎样

模板形式。每趟新建一个Actiivty时都会覆盖onCreate,onStart等措施,那些主目的在于父类中就也就是一个模板。

2、在Activity中声称此Fragment,就当和经常性的View同样

骨子里这2个分界面还用到了另一个相比著名的机件: Fragments。这么些组件其实不是具备的Android版本都扶助,那是在Android 3.0后头引进的, Fragments被看做多少个零器件的团组织单元,是各类小组件的贰个会见管理对象。

何以将一个Activity设置成窗口的体制

  • 在AndroidManifest.xml文件中安装当前亟需改动成窗口样式的Activity的属性。
android:theme="@android:style/Theme.Dialog"  
  • 在styles.xml文件中自定义两个大旨样式,改宗旨样式必得一连Dialog的样式.

上边浮现三个事例(作者利用2个Fragment作为Activity的结构,一个Fragment用于标题结构,二个Fragment用于内容构造):

Fragments也正是轻量级的Activity,他内嵌在Activity的布局中,管理具备一样业务逻辑意义的零器件合集。 Fragments与Activity有众多雷同的地点。

Activity的运维进程

  1. 任凭通过Launcher来运转Activity,仍旧通过Activity内部调用startActivity接口来运转新的Activity,都经过Binder进程间通讯步入到ActivityManagerService进度中,并且调用ActivityManagerService.startActivity接口;
  2. ActivityManagerService调用ActivityStack.startActivityMayWait来做考虑要运转的Activity的连锁新闻;
  3. ActivityStack文告ApplicationThread要扩充Activity运维调节了,这里的ApplicationThread代表的是调用ActivityManager瑟维斯.startActivity接口的进程,对于因而点击应用程序Logo的情状来讲,这几个进度便是Launcher了,而对此由此在Activity内部调用startActivity的风貌来讲,这一个进度正是其一Activity所在的经过了;
  4. ApplicationThread不实施真正的运维操作,它通过调用ActivityManager瑟维斯.activityPaused接口步入到ActivityManagerService进度中,看看是还是不是必要创造新的进度来运转Activity;
  5. 对于由此点击应用程序Logo来运营Activity的场所来讲,ActivityManagerService在此一步中,会调用startProcessLocked来创制贰个新的进程,而对此经过在Activity内部调用startActivity来运行新的Activity来说,这一步是没有必要进行的,因为新的Activity就在原来的Activity所在的经过中张开运维;
  6. ActivityManagerService调用ApplicationThread.scheduleLaunchActivity接口,文告相应的进程实践运维Activity的操作;
  7. ApplicationThread把那一个运维Activity的操作转载给ActivityThread,ActivityThread通过ClassLoader导入相应的Activity类,然后把它运维起来。

TitleFragment的结构文件:

小编们在讲明完Activity之后会再执教 Fragments,之所以未有独自把它独立列出来说,是因为这2个控件差不离有平等的用法,大家只关注他们的差异点。

window和activity之间涉及?

 计算机 6

Tasks and Back Stack

WindowManager 的连锁知识

TitleFragment:

Activity要求器重解说的三个知识点是Tasks and Back Stack。全部的应用软件是由四个要么多少个Activity构成的,当您在有些页面(Activity A)上点击有些按键并跳转到下三个页面(Activity B卡塔尔的时候,系统须要保障A的动静,那样当大家按回降开关的时候,以便能够再一次彰显A的原委和数码。那个历程中系统要把A的音信和情状保持到二个数据布局中,那一个布局就叫做Back Stack 而为了变成有个别意义,Activity A和Activity B那样二个重新组合就叫做四个Task。

Activity、Window 和 View 三者的界别

  • 二个 Activity 布局的时候自然会协会一个Window(PhoneWindow卡塔尔国,何况唯有几个。
  • 本条Window会有一个ViewRoot(View、ViewGroup卡塔尔(قطر‎。
  • 通过addView(State of Qatar加载布局。
  • WindowMangerService 选取消息,並且回到 Activity 函数,举例onKeyDown(卡塔尔(قطر‎。

Activity 是调节单元,Window 是承载模型,View 是显示视图

 计算机 7

计算机 8

二个activity张开别的二个activity,再展开贰个activity?回去的时候发出了什么样操作?

同理还会有ContentFragment的其布局文件:

上海体育场所描述了多少个Task进度中Back Stack管理Activity的。接下来大家例如:

onActivityResult(int requestCode, int resultCode, Intent data卡塔尔方法的用法;

假设你想在Activity中获得新开采Activity关闭后回来的数码,你要求运用系统提供的startActivityForResult(Intent intent,int requestCode卡塔尔方法展开新的Activity,新的Activity关闭后会向前方的Activity传回数据,为了获得传回的数目,你一定要在前头的Activity中重写onActivityResult(int requestCode, int resultCode,Intent data)方法。

 计算机 9 计算机 10

计算机 11计算机 12

无须Service,B页面为音乐广播,从A跳到B,再回到,如何使音乐继续播放?

A使用startActivityForResult方法开启B,B类停止时调用finish;A类的Intent有多个子Activity结束事件onActivityResult,在此个事件里三回九转播放音乐。

 MainActivity:

当大家点击 ”腾讯网”-->“作者的”-->“商城”开关的时候,会弹出三个新的分界面,那时“笔者的”正是暗中表示图中Activity1,而弹出的“店肆”分界面就是Activity2,当作者再一次点击“Tmall特价贩售”的时候,会弹出“特价贩卖频道”分界面,那个分界面正是上海教室中的Activity3,当小编按“回降” 按键的时候,Activity3就能够从Back Stack中弹出何况销毁,Activity2就能处在激活状态,同理再度按下“回落”按钮,Activity2就能销毁而Activity1就能够处于只怕月意况。

内部存款和储蓄器不足时,怎么保证Activity的有个别状态,在哪个方法里面做具体操作?

在onSaveInstanceState方法中保存Activity的景色,在onRestoreInstanceState或onCreate方法中回复Activity的情状

 计算机 13   Activity的布局文件:计算机 14

故而Task就是在开辟七个app而且点击各样分界面时候,系统为了管住那有的列操作和景观而创造的管理对象。而Back Stack是为着管住各种节目标数据布局。实际上,平时景观下三个Task正是叁个linux进程,而Back Stack就是其一进度管理应用软件用的数据构造。

onSaveInstanceState方法

  • 用于保存Activity的情事存款和储蓄一些一时数据
  • Activity被覆盖或步向后台,由于系统资源不足被kill会被调用
  • 顾客退换显示器方向会被调用
  • 跳转到其余Activity或按Home踏入后台会被调用
  • 会在onStop此前被调用,和onPause的依次不固定的

动态使用:

Activity Lifecycle

onRestoreInstanceState(Bundle savedInstanceState)方法

  • 用于恢复生机保存的临时数据,此情势的Bundle参数也会传递到onCreate方法中,你也得以在onCreate(Bundle savedInstanceState卡塔尔国方法中回复数据
  • onRestoreInstanceState和onCreate的分别:当onRestoreInstanceState被调用时Bundle参数一定是有值的,不用做为null剖断,onCreate的Bundle则大概会为null。官方文书档案提议在这里方式中举行数据恢复生机。
  • 出于系统能源不足被kill之后又重临此Activity会被调用
  • 客商更动显示屏方向重新建立Activity时会被调用
  • 会在onStart之后被调用

行使FragmentManager对Fragment进行了动态的加载,注:即使应用Android3.0之下的版本,须求引进v4的包,然后Activity世袭FragmentActivity,然后通过getSupportFragmentManager得到FragmentManager。可是照旧指出版Menifest文件的uses-sdk的minSdkVersion和targetSdkVersion都改为11上述,那样就不用引进v4包了。

Activity须要珍视教学的第二知识点正是Lifecycle。大家讲过Activity3在顾客按下“回落”键的时候,会销毁并且Activity2处于激活状态。那一个进程中Activity3是被系统释放了能源的。Android有一套能源管理办法,为了在少数的手提式有线电电话机内部存款和储蓄器上海展览中心示尽可能抬高的内容,Android会为每三个正在体现的界面创造三个情景,并为分歧的事态赋予区别的财富权限。

同二个程序不一样的Activity怎么着放在分化的任务栈中?

急需为差异的activity设置差别的affinity属性,运转activity的Intent须求饱含FLAG_ACTIVITY_NEW_TASK标记。

详细介绍FragmentManager的常用API:

率先作者先是看一下Activity的状态图,图片源于官网,希望大家养成阅读原版官方文书档案的素材,本书大多数内容是在合罗马尼亚语书档案根底上,举行的下结论和解读。

哪些安全退出已调用多个Activity的Application?

  • 笔录展开的Activity:每张开一个Activity,就记录下来。在急需退出时,关闭每二个Activity就能够。
  • 出殡特定广播:在急需收尾应用时,发送三个特定的播音,每一个Activity收到广播后,关闭就可以。
  • 递归退出:在开辟新的Activity时利用startActivityForResult,然后自身加标记,在onActivityResult中管理,递归关闭。

Fragment常用的四个类:

计算机 15计算机 16

有二种在activity之间切换的形式?

startActivity()

startActivityForResult()

 

总的来看Activity流程微微有一点点复杂,但是只要结合地方的例子,你会对那几个处境有旁客官清的认知,首先是“Created”,当您点击“商号”开关之后会弹出“商场”分界面,在此个分界面展现以前,你需求首先拆解深入分析Activity的构造文件,以便明白分界面上有哪些要素供给出示,以至他们的职位,大家例子中,一个列表须求浮现,列表中有三项内容:“不久前特价贩售”,“前些天影片”,“Tmall特价售卖”。那几个分析布局文件并设置显示内容的历程正是”Create“的长河,截止之后Activity就处于“Created”。而以此进度是在onCreated(卡塔尔(قطر‎函数中进行的。

Fragment

android.app.Fragment 主要用来定义Fragment

创办甘休未来就要展现那么些分界面了,完成展现之后Activity就处在“Started”状态了,在创立之后,展现早前,借使您还要做些什么事情,那就调用onStart(State of Qatar函数。

Fragment生命周期

计算机 17

计算机 18

android.app.FragmentManager 主要用于在Activity中操作Fragment

分界面突显之后,你还会有时机做一些事务,这些动作能够在onResume(卡塔尔中展开,实行到位这几个函数之后,Activity就能处在“Resumed”状态了。

Activity中怎样动态的加多Fragment?

//向活动添加碎片,根据屏幕的纵向和横向显示
//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();

android.app.FragmentTransaction 保险一些列Fragment操作的原子性

接下去2个状态是“Paused”和“Stopped”,那三个情景日常景况下是三番五回同不平日候现身的,固然从脚下分界面点击了叁个开关,按键的作用是弹出一个新的Activity,那么当前的Actvity就能够率先处于“Paused”的意况,步向此情形前会首先调用onPause(卡塔尔(قطر‎方法,然后再调用onStop(卡塔尔(قطر‎方法,进入Stopped的事态,而新的Activity要重复走三回Created到Resumed的流程。

Fragment 特点

  • Fragment能够看作Activity分界面包车型大巴一有的组成现身;
  • 能够在二个Activity中并且现身多个Fragment,何况二个Fragment也得以在八个Activity中利用;
  • 在Activity运维进程中,能够增加、移除或然替换Fragment;
  • Fragment能够响应本身的输入事件,并且有自身的生命周期,它们的生命周期会受宿主Activity的生命周期影响。
  • Fragment能够轻便得创立动态灵活的UI设计,能够适应于区别的显示屏尺寸。从手提式有线电话机到机械计算机。
  • Fragment 消除Activity间的切换不通畅,轻量切换。
  • Fragment 代替TabActivity做导航,质量更加好。
  • Fragment做一些内容更新更便于,原本为了完成这点要把七个布局放到二个activity里面,现在得以用多Fragment来代替,唯有在要求的时候才加载Fragment,进步性能。

 

在这里个历程中,假诺点击按键之后不是展现多个新的Activity,而是弹出贰个认可对话框,那么当前的Activity只会进来Paused的情事,而不会进来Stopped,并且独有onPause()方法会被实行到。因为当时当前的Activity只是有的可以知道,实际不是一心被掩没掉。那一个地点是便于被开采者混淆的知识点。

Fragment嵌套四个Fragment会见世bug吗?

参考:http://blog.csdn.net/megatronkings/article/details/51417510

a、获取FragmentManage的方式:

当确认开关被点击相提并论新重临当前Activity之后,Activity又再度走入了Resumed状态。那时候onResume(卡塔尔(قطر‎函数会被实践到。

怎么精通Activity和Fragment的涉及?

  • Fragment 具有和 Activity 一致的生命周期,它和 Activity 同样被定义为 Controller 层的类。有过中山高校型项目支付经历的开垦者,应该都会超出过 Activity 过于肥壮的事态,而 Fragment 的产出正是为了缓慢解决这一光景,能够说 它将显示屏分解为多个「Fragment(碎片)」(那句话非常重视),但它又区别于 View,它干的真相上正是 Activity 的业务,担当调节 View 以致它们中间的逻辑。
  • 将显示屏碎片化为多少个 Fragment 后,其实 Activity 只须求花精力去管理当前荧屏内应有出示怎么 Fragments,以至相应对它们进行什么样布局就能够了。那是一种组件化的沉思,用 Fragment 去组合了一多元有提到的 UI 组件,并拘系它们中间的逻辑,而 Activity 负担在分化荧屏下(比方横竖屏)构造分裂的 Fragments 组合。
  • 这种碎片不单单能管理可视的 Views,它也能进行不可视的 Tasks,它提供了 retainInstance 属性,能够在 Activity 因为荧屏状态发生变动(举个例子切换横竖屏时)而销毁重新建立时,依然保留实例。那表示着咱们能在 RetainedFragment 里面实践一些在显示器状态发生改变时不被搁浅的操作。例如使用 RetainedFragment 来缓存在线音乐文件,它在横竖屏切换时依旧保持下载进程,并通过三个DialogFragment 来呈现进程。

getFragmentManager() // v4中,getSupportFragmentManager

本文由乐虎游戏发布于计算机资讯,转载请注明出处:Android Fragment 剖析

关键词:

Swift-ScrollView轮播图的简易封装和使用

不多说,轮播图是开发中必要一项技能,直接上代码: 在开发的过程中,很多地方都可以用到轮播图的,这样让用户...

详细>>

第2章第4节界面MVC(下)

稍好点的两全 内容摘要 纯手打.png 地点讲授的亲自过问,通过二个函数就完事了七个简便的多少体现和改产生效,不...

详细>>

Android开发快速入门(环境配置、Android Studio安装)

章节 Android是一种动人心弦的开源移动平台,它像手提式有线电话机同样无处不在,得到了Google以至此外部分怒放手提...

详细>>

Android PopupWindow的使用技巧

内容摘要 TextView 文本框 EditText控件 Button 与 ImageButton ImageView RadioButton CheckBox复选框 PopupWindow是Android上自定义弹出窗口...

详细>>