首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

札记:Fragment基础

app会在不同屏幕尺寸时动态选择同一个Activity中同时显示文章列表和对应选择的文章的详情信息,或者单独的一个列表界面,选择一个文章后打开新Activity来显示文章详情。...标签指定的FragmentActivity的布局加载中会被实例化,onCreateView()返回的View将替换元素layout中的位置。...而这个方法Fragment还未attached或已经detached后 期间均返回null。...通过FragmentTransaction来执行有关fragment的事务时,可以通过addToBackStack()来添加此次事务的操作到回退栈中,这样以后,用户按下返回键后Activity的Fragment...,布局中同时提供了R.id.detail_container作为ArticleDetailFragment的容器,这样选择查看某个标题时, 就会在同一个界面使用ArticleDetailFragment

1.2K60

《Android基础:Fragment,看这篇就够了》

(),该方法返回Fragment的UI布局,需要注意的是inflate()的第三个参数是false,因为Fragment内部实现中,会把该布局添加到container中,如果设为true,那么就会重复做两次添加...一次事务中,可以做多个操作,比如同时做add().remove().replace()。 commit()操作是异步的,内部通过mManager.enqueueAction()加入处理队列。...上面的方法中,只有onCreateView()重写时不用写super方法,其他都需要。...当用户点返回按钮回退事务时,F1会调onCreateView()->onStart()->onResume(),因此Fragment事务中加不加addToBackStack()会影响Fragment的生命周期...如果要自定义对话框样式,只需要继承DialogFragment,并重写onCreateView(),该方法返回对话框UI。这里我们举个例子,实现进度条样式的圆角对话框。

3.8K61

Android 基础:Fragment,看这篇就够了 (上)

(),该方法返回Fragment的UI布局,需要注意的是inflate()的第三个参数是false,因为Fragment内部实现中,会把该布局添加到container中,如果设为true,那么就会重复做两次添加...一次事务中,可以做多个操作,比如同时做add().remove().replace()。 commit()操作是异步的,内部通过mManager.enqueueAction()加入处理队列。...上面的方法中,只有onCreateView()重写时不用写super方法,其他都需要。...当用户点返回按钮回退事务时,F1会调onCreateView()->onStart()->onResume(),因此Fragment事务中加不加addToBackStack()会影响Fragment的生命周期...如果要自定义对话框样式,只需要继承DialogFragment,并重写onCreateView(),该方法返回对话框UI。这里我们举个例子,实现进度条样式的圆角对话框。

5.8K40

Android入门教程 | Fragment 基础概念

onCreateView() 系统会在片段首次绘制其界面时调用此方法。如要为片段绘制界面,从此方法中返回的 View 必须是片段布局的根视图。如果片段未提供界面,可以返回 null。...如要为片段提供布局,必须实现 onCreateView() 回调方法,Android 系统会在片段需要绘制其布局时调用该方法。此方法的实现所返回的 View 必须是片段布局的根视图。...如要从 onCreateView() 返回布局,可以通过 XML 中定义的布局资源来扩展布局。为帮助您执行此操作,onCreateView() 提供了一个 LayoutInflater 对象。...但请注意,只有该片段附加到 Activity 时才需调用 getContext()。如果尚未附加该片段,或者其在生命周期结束期间已分离,则 getContext() 返回 null。...界面时调用,返回值为Fragment要绘制布局的根视图,当然也可以返回null

3.5K40

Kotlin甩掉findViewbyId,原理几何

Android Studio 中,点击最顶部的 Tools -> Kotlin ,然后选择 Show Kotlin Bytecode,可以右侧面板中看到对应的字节码,然后点击 Decompile...具体查找流程是这样的:findCachedViewById()中,会先通过缓存 HashMap 的 get 方法来获取控件, get() 中传入的 key 即控件 ID,由于第一次 get 的值为 null...以上是 activity 里面直接使用控件 ID,但是 fragment 里面使用要注意的是,不能在onCreateView方法里用 view 的 ID,而是 onViewCreated以后使用,...()的,如果是onCreateView方法里使用控件 ID,这个时候getView()会返回 null,即 var10000为null,这样findCachedViewById()就返回空了。...因此,千万要注意 fragment 里面不能在onCreateView方法里用 view 的 ID。

1.2K10

鸿洋AutoLayout代码分析(三):入口类分析

(String name, Context context, AttributeSet attrs) { View view = null; if (name.equals...= null) return view; return super.onCreateView(name, context, attrs); } } 我们可以发现,只是做了name...(自己理解静态内部类,一般内部类 就是和本来关系比较密切,在其他地方不需要调用,非静态内部类可以调用外部类的属性和方法, 比较方便。...Override这几个方法,而不从别的方法下手,自己以后再做考虑) 后面我们再说明下,是怎么通过AutoLayoutHelper把 传递值 和 计算 联系起来的 ---- AutoRelativeLayout...的接口, 传递 AutoLayoutHelper的实现 返回 AutoLayoutInfo 对象 ---- AutoLayoutInfo类 我们看看 AutoLayoutInfo 类 public

53620

【Android】再来一篇Fragment的懒加载(只加载一次哦)

以后如果再重新打开该 Fragment 的话,就不要再重复的去加载数据了。...比如说,我下载完数据就直接需要对 ui 进行操作,将数据展示出来,但有时却报了 ui 控件 null 异常,这是因为 setUserVisibleHint() 有可能在 onCreateView() 创建...Fragment * view 的复用其实就是指保存第一次创建的 view,后面再 onCreateView() 时直接返回第一次创建的 view * * @param isReuse...首次可见时回调,可在这里进行加载数据,保证只第一次打开Fragment时才会加载数据, * 这样就可以防止每次进入都重复加载数据 * 该方法会在 onFragmentVisibleChange...如果出现切换回来或不相邻的Tab切换时导致空白界面的问题,解决方法: onCreateView中复用布局 + ViewPager 的适配器中复写 destroyItem() 方法去掉 super。

1.6K70
领券