fragment

优雅的让Fragment监听返回键

荒凉一梦 提交于 2020-03-01 01:20:44
Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能。假设FragmentActivity有三个Fragment,一般安卓用户期望点击返回键会一层层返回到FragmentActivity。当然,我们可以将每个Fragment对应的Transaction放到BackStack中,但是如果每个Fragment有对返回事件的特殊消费,那么在FragmentActivity的onBackPressed()中的代码就会比较混乱,例如: [java] view plain copy @Override public void onBackPressed() { if (selectedFragment.equals(fragmentA) && fragmentA.hasExpandedRow()) { fragmentA.collapseRow(); } else if (selectedFragment.equals(fragmentA) && fragmentA.isShowingLoginView()) { fragmentA.hideLoginView(); } else if (selectedFragment.equals(fragmentA)) { popBackStack(); } else if (selectedFragment.equals

【代码】Androidの代码片段

寵の児 提交于 2020-02-29 14:34:42
UI SightFragment : Fragment 用户初见处理。 常见于 ViewPager 预加载前后页面,但希望页面等用户可见时才加载内容。 TokenActivity : Activity 恰当弹窗时机。 TransparentStatusBarActivity : 全透明状态栏。 状态 AppLifecycle : Application 前后台及 Activity 生命期处理。 工具 追踪 Log : 日志打印。可添加通道,输出到文件。 CrashHandler : 崩溃处理。将会记录奔溃日志到文件。 系统 Helper for accessing os properties : 系统属性访问: SystemProperties 、 build.prop 。 Helper for 3rd party roms : 第三方 ROM 兼容:Flyme、MIUI。 硬件 The bluetooth listener and profile proxy : 蓝牙开关、监听,以及操作系统蓝牙配置。 Tips View id should be unique in the hierarchy. Otherwise, save and restore state may occur exception. Reference: View保存状态的过程分析

Android开发学习记录(2015-05-19 23:05:34更新)

限于喜欢 提交于 2020-02-29 11:12:56
占个坑位,日后增加,哈哈 ----------------- 分割线 ------------------- 发了以上这篇日志,居然意外的访问量飙升,几小时阅读破百。 真心搞不懂,是不是我这个标题太惹人注意了。真心感觉对不起观众。我一定会抓紧学习。多记录些。 ----------------- 分割线 ------------------- 学着组织一个Android App 2015-05-15 01:10:37 之前做一个练手App,把公司手机网站做成了Android原生界面,没有写啥代码。主要是为了熟悉 Android自带控件的属性 视图布局的组织 Activity的生命周期、跳转、传值等 现在开始着手开展第二个练手的App。方向是做一个大学的新闻的客户端。我想应该有很多可以值得实践的。始终觉得一个良好的代码组织结构,是一个优秀程序的良好开端。在github还有gitosc上找了一些新闻客户端,做参考。感觉结构挺混乱的,仅仅为了练手的 感觉。所以只能找非新闻类的开源App来做参考,正好今天欣喜的发现osc的Android开源客户端的v2版本已经公布在gitosc上。于是边学分析,边学着开始做下。 首先在App的包下有4个文件,作为初学者,我一开始不太明白,为啥需要这几个东西。 研究了一会以后,我觉得大概可能是这样子的: AppConfig:应用程序配置类

Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误

六眼飞鱼酱① 提交于 2020-02-27 09:03:35
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 getChildFragmentManager() 来获取FragmentManger. 虽然看起来和在activity中添加fragment差不多, 但因为fragment生命周期及管理恢复模式不同, 其中有一些需要特别注意的地方. 本文内容还包括了从Fragment迁移到v4.Fragment代码中需要改动的一些地方. 嵌套Fragments 嵌套Fragments Nested Fragments 是Android 4.2 API 17 引入的. 目的: 进一步增强动态复用. 如果要在Android 4.2之前使用, 可以用support library v4的版本, 后面会有详细的迁移过程介绍. 嵌套Fragment的动态添加 在宿主fragment里调用 getChildFragmentManager() 即可用它来向这个fragment内部添加fragments. Fragment videoFragment = new VideoPlayerFragment(); FragmentTransaction transaction =

第五天 Fragment高级进阶

末鹿安然 提交于 2020-02-26 23:08:54
Fragment高级进阶 一、Fragment回退栈 二、Fragment传值介绍 1.activity 给 fragment传值 2.fragment 给 activity传值 1.第一种 2.第二种 3.fragment 给 fragment 传值(共3中) 案例(微信底部按钮与fragment实现界面切换) 一、Fragment回退栈 package com . example . a04utll ; import androidx . appcompat . app . AppCompatActivity ; import androidx . fragment . app . FragmentManager ; import androidx . fragment . app . FragmentTransaction ; import android . content . Intent ; import android . os . Bundle ; import android . view . View ; import android . widget . Button ; public class Main2Activity extends AppCompatActivity { private Button btnTz ; @Override

Day2_25_第五天 Fragment高级进阶

主宰稳场 提交于 2020-02-26 02:26:27
Fragment高级进阶 一.Fragment回退栈 二.Fragment传值 1.Activity给Fragment传值 2.Fragment给Activity传值 3.Fragment给Fragment传值 三.Fragment多层嵌套 一.Fragment回退栈 通过代码,将fragment加入到栈中,按返回键时会将fragment弹栈 public class Main2Activity extends AppCompatActivity { private FragmentManager supportFragmentManager ; private BlankFragment blankFragment ; private Button butBack ; @Override protected void onCreate ( Bundle savedInstanceState ) { super . onCreate ( savedInstanceState ) ; setContentView ( R . layout . activity_main2 ) ; initViews ( ) ; } private void initViews ( ) { supportFragmentManager = getSupportFragmentManager ( ) ;

当你面试的时候,被问到关于Fragment的种种

有些话、适合烂在心里 提交于 2020-02-26 00:36:53
前言 不知道你们都没有自己特别的学习的方法,我是有吧所有的整理成笔记的习惯 比如今天讲解的关于 Fragment 的我会做成笔记 由于文章有些地方代码过于太长了繁琐,所以部分省略掉了,敲了一下午眼睛和手脖子都酸了,至于省略的部分,对这些笔记,面试内容感兴趣的可以看笔记研究,欢迎留言 相关内容后续GitHub更新,想冲击金三银四的小伙伴可以找找看看,欢迎star ( 顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找 ) https://github.com/xiangjiana/Android-MS 一丶Fragment 的使用 实现很简单,创建一个的布局,然后在 Activity 里点击时替换 Fragment mFragmentManager = getSupportFragmentManager(); mFragmentManager.beginTransaction() .replace(R.id.fl_content, fragment) .commitAllowingStateLoss(); 代码很简单,核心就三步: 创建 Fragment 获取 FragmentManager 调用事务,添加、替换 我们一步步来了解这背后的故事。 Fragment 大家应该比较熟悉,放到最后。 先来看看 FragmentManager 。 ####二丶

第四章碎片

纵饮孤独 提交于 2020-02-23 12:36:00
碎片的使用 碎片的简单使用 左侧碎片布局 < LinearLayout xmlns : android = "http://schemas.android.com/apk/res/android" android : layout_width = "match_parent" android : layout_height = "match_parent" android : orientation = "vertical" > < Button android : id = "@+id/button" android : layout_width = "wrap_content" android : layout_height = "wrap_content" android : layout_gravity = "center_horizontal" android : text = "button" / > < / LinearLayout > 右侧碎片布局 < LinearLayout xmlns : android = "http://schemas.android.com/apk/res/android" android : layout_width = "match_parent" android : layout_height = "match_parent"

在 fragment 里面调用 findViewById

落花浮王杯 提交于 2020-02-23 11:50:54
public class CompanyListFragment extends Fragment {   private Activity activity;   private ListView companyListView;   @Override   public View onCreateView(LayoutInflater infalter, ViewGroup container, Bundle savedInstanceState) {     View view = infalter.inflate(R.layout.companylist_for_sport, container, false);     companyListView = (ListView)view.findViewById(R.id.companyListView);     return view;   } } 注意1: 是在 onCreateView 中 注意2: 是 view.findViewById 而不是 activity.findViewById 来源: https://www.cnblogs.com/Ken-Cai/p/4186660.html

Fragment嵌套Fragment要用getChildFragmentManager

喜欢而已 提交于 2020-02-14 20:09:09
  Fragment嵌套Fragment要用getChildFragmentManager。   遇到一个问题,Fragment放ViewPager,ViewPager里面是fragment。第一次进入没问题,再次进入ViewPager的fragment时里面内容就没了,数据丢失。   用的FragmentPagerAdapter.打Log发现FragmentPagerAdapter的getItem也不会调用,一直找不出原因。翻网上的回复终于找到答案。   本来里面的fragment用的还是getFragmentManager,Fragment嵌套Fragment时,里面要用getChildFragmentManager。  FragmentManager childFragmentManager = getChildFragmentManager(); ViewPager_Adapter viewPager_adapter = new ViewPager_Adapter(childFragmentManager, fragments);    //FragmentPagerAdapter 来源: https://www.cnblogs.com/rewufu/p/4499949.html