首页 > 学院 > 开发设计 > 正文

(第一行代码)笔记(二)

2019-11-09 17:32:32
字体:
来源:转载
供稿:网友

四种基本布局

layout_gravity 指定控件位置weight 按照比例指定控件的大小
LinearLayout 线性布局 orientation vertical,horizontalRelativeLayout 相对布局FrameLayout 帧布局 TableLayout 表格布局 stretchColumns 拉伸指定列自适应屏幕宽度 TableRow layout_span

创建自定义控件

固定布局,通过layout布局文件自定义控件

LayoutInflater.from(context).inflate(R.layout.activity_main_layout,this);ListView优化使用ViewHolderview.setTag(viewHolder)单位dp代替dx动态获取屏幕密度值getResources().getDisplayMetrics().xdpi;getResources().getDisplayMetrics().ydpi;

.9图

碎片Fragment

新建类继承Fragment,重写onCreateView ,使用参数中的inflate.inflate()方法填充布局, 返回view layout布局中添加fragment指定name属性为新建类

碎片动态添加

把Fragment布局放在FrameLayout布局中替换fragment布局

先new出继承Fragment,新实例FragmentManager manager = getFragmentManager();FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.content ,fragment);transaction.commit();

按back键返回上一个fragment,可transaction.addToBackStack(null);

getActivity()可获得与此fragment相关联的activity实例 getFragmentManager().findFragmentById()获取碎片的实例

碎片的生命周期

onAttach 碎片与活动相关联的时候调用onCreateView 碎片创建视图(加载视图)时候调用onActivityCreated 确保与碎片相关联的活动一定已经创建完毕的时候调用onDestroyView 当与碎片相关联的视图被移除的时候调用onDetach 当碎片与活动解除关联的时候调用

碎片完整的生命周期 添加一个碎片

onAttachonCreateonCreateViewonActivityCreatedonStartonResume碎片已激活onPauseonStoponDestroyViewonDestroyonDetach碎片被销毁

广播接收器

标准广播 异步执行,所有广播接收器几乎同一时间接收到广播,没有先后顺序可言有序广播 同步执行,同一时刻只有一个广播接收器能收到这条广播消息,有先后顺序,并可以截断正在传递的广播。

动态注册监听网络变化

代码中注册为动态注册, AndroidManifest.xml中注册为静态注册

创建广播接收器

继承BroadcastReceiver重写父类onReceive方法

MainActivity中代码`onCreate`方法中IntentFilter intentFilter = new IntentFilter();intentFileter.addAction("android.net.conn.CONNECTIVITY_CHANGE");netChangeReceiver(new 新对象)registerReceiver(netChangeReceiver, intentFilter);`onDestroy`方法中unRegisterReceiver(newChangeReceiver);重写`onReceive`方法ConnectivityManager cm = getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = cm.getActiveNetworkInfo();此服务监听需要申请权限。access_NETWORK_STATE开机启动权限BOOT_COMPLETED开机监听RECEIVE_BOOT_COMPLETED后台运行allowBackup自定义广播消息new Intent("消息的字段内容");sendBroadcast(intent);发送有序广播sendOrderedBroadcaset(intent, null);第二个参数是与权限相关的字符串

abortBroadcast拦截广播

以上为系统广播,下面为本地广播。

LocalBroadcastManager对广播进行管理广播的最佳实践,强制下线alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);需要申请权限。广播里面启动活动,需要intent.addFlag(Intent.FLAG_ACTIVITY_NET_TASK);
上一篇:Shell - 24

下一篇:fastjson常用方法

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表