首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Fragment初识

由于平板电脑的屏幕比手机屏幕大得多,因此可用于组合和交换 UI 组件的空间更大。利用片段实现此类设计时,您无需管理对视图层次结构的复杂更改。...通过将 Activity 布局分成片段,您可以在运行时修改 Activity 的外观,并在由 Activity 管理的返回栈中保留这些更改。...这特别重要,因为模块化片段让您可以通过更改片段的组合方式来适应不同的屏幕尺寸。 在设计可同时支持平板电脑和手机的应用时,您可以在不同的布局配置中重复使用您的片段,以根据可用的屏幕空间优化用户体验。...Fragment中的UI控件 TextView tv = (TextView) findViewById(R.id.textview); tv.setText("我在Act...textView.setText("FFFF"); } } ---- 数据传递 ①Activit传递数据给Fragment: 在Activity中创建Bundle数据包,调用Fragment实例的

1.2K20

Android View之requestLayout排坑

一个功能引发的思考 首先从一个真实项目中的例子说起,假设我们需要做一个定时器之类的功能,就是每隔一秒会刷新TextView(显示时间用)的内容,同时也会更改另一个View的background...1)setText setText是TextView的方法,源码的逻辑比较多,一直跟下去,找到一个和布局比较相关的代码,如下: 1.png        再看一下checkForRelayout这个方法...而我们前面例子里的TextView宽度正是设置为Wrap_Content,同时也没设置mMaxWidth这些影响大小的属性,换一句话说,即我们的TextView大小是内容自适应的,所以每次setText...上面只介绍了setText,setBackgroundDrawable两个方法的实现,其实View其他设置方法都大同小异,代码的实现者考虑到性能问题,在更改View的内容时,如果发现其大小等属性没变化,...则一般不会触发requestLayout进行布局重计算,只会调用invalidate进行内容绘制。

6.5K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    安卓UI

    您的应用必须在此文件中声明其所有组件,该文件必须位于应用项目目录的根目录中。 - 应用资源 应用资源是指代码使用的附加文件和静态内容,例如位图、布局定义、界面字符串、动画说明等。...应将各类资源放入项目 res/ 目录的特定子目录中。 - 布局容器 布局可定义应用中的界面结构(例如 Activity 的界面结构)。...布局中的所有元素均使用 View 和 ViewGroup 对象的层次结构进行构建。View 通常绘制用户可查看并进行交互的内容。...- 任务 任务是用户在执行某项工作时与之互动的一系列 Activity 的集合。 - 片段 Fragment 表示 FragmentActivity 中的行为或界面的一部分。...R.id.list); Activity 也可使用 findFragmentById() 或 findFragmentByTag(),通过从 FragmentManager 获取对 Fragment 的引用来调用片段中的方法

    1.4K30

    Fragment基本使用

    Fragment概述 1.1 介绍 Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity...类或其子类,同时实现onCreate()方法,在方法中,通过inflater.inflate加载布局文件,接着返回其View 在需要加载Fragment的Activity对应布局文件中的name属性设为全限定类名...()方法返回Fragment的UI布局,需要注意的是inflate()的第三个参数是false,因为在Fragment内部实现中,会把该布局添加到container中,如果设为true,那么就会重复做两次添加...这里很明显,我们调用transaction.addToBackStack(null);将当前的事务添加到了回退栈,所以FragmentOne实例不会被销毁,但是视图层次依然会被销毁,即会调用onDestoryView...(getActivity()); textView.setText("上上下下的享受");//是电梯,别误会 4.2 传递数据给Activity 步骤流程: 在Fragment中定义一个内部回调接口

    2K30

    真·富文本编辑器的演进之路-【译】破解Span性能之谜

    除此之外,每当DynamicLayout中显示的Span被更新时,布局会检查该Span是否为UpdateLayout Span,并为受影响的文本生成一个新的布局。...要做到这一点,很可能你会想调用textView.setText(CharSequence)两次:首先设置初始文本,然后在按钮被点击时再次调用。...选项1:多次调用textView.setText(CharSequence)--次优方案 当调用textView.setText(CharSequence)时,TextView会创建一个Spannable..., BufferType)时,BufferType参数告诉TextView设置了什么类型的文本:静态(调用textView.setText(CharSequence)时的默认类型)、styleable/...在Android中处理文本是一项如此常见的任务,调用正确的TextView.setText方法可以帮助您减少应用程序的内存使用量并提高其性能。

    1.4K10

    详细介绍安卓布局性能优化之(include 、merge、ViewStub)

    include标签 include标签常用于将布局中的公共部分提取出来供其他layout共用,以实现布局模块化,也是平常我们设计布局时用的最多的 include 官方文档 布局作为子布局被其他布局include时,使用merge当作该布局的顶节点,这样在被引入时顶结点会自动被忽略,而将其子节点全部合并到主布局中。.... 3.注意如果include的layout用了merge,调用include的根布局也使用了merge标签,那么就失去布局的属性了 4.merge标签必须使用在根布局 5.ViewStub标签中的...上述场景,我们通常的解决方案就是:就是把可能用到的View先写在布局里,再初始化其可见性都设为View.GONE,然后在代码中根据数据动态的更改它的可见性。...ViewStub 标签最大的优点是当你需要时才会加载,使用它并不会影响UI初始化时的性能.各种不常用的布局像进度条、显示错误消息等可以使用ViewStub标签,以减少内存使用量,加快渲染速度.ViewStub

    1.6K10

    Android图文混排实现方式详解

    后期会整理个解决图文混排的工具库,里面会有具体方案。 4 Spannable使用 1.简介 setText(CharSequence text)中接收的是CharSequence。...但是并不是所有的场景下都适合使用 WebView 来显示 HTML 内容,例如,如果应用要显示的内容只是一部分 HTML 片段,就可以利用 TextView 来进行显示,并且效率较高。...由于并非所有的 HTML 标签都可以转化,所以在使用时,用户需要自己添加一些必要的标签和处理方法时才会继承使用的。...最后,通过 formHtml()方法将 HTML 内容转化为可供显示的 SpannableString,将 SpannableString 通过 setText 方法放入 TextView 中,就可以显示图文并茂的内容了...要完成用户交互,这里我们需要在 TextView 中还需要调用textView.setMovementMethod()方法。

    2.7K10

    2.ui

    =0(layout_weight=1) ----    RelativeLayout:相对的布局  特点          a):在相对的布局中主要就进行避免覆盖的问题,就是组件1可能会覆盖在组件2上...;          b):在相对的布局中在线性的orientation方向和权重在相对的布局中并不适用;  c):组件默认左对齐、顶部对齐 * 设置组件在指定组件的右边  android:layout_toRightOf...通过 android:maxLines指定 EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而 EditText则不会再继续拉伸 如何才能让进度条在数据加载完成时消失呢?...View对象(条目布局)的findViewById TextView tv_name = (TextView) v.findViewById(R.id.tv_name); tv_name.setText...虽然现在已经不会再重复去加载布局,但是每次在getView()方法中还是会调用View的findViewById()方法来获取一次控件的实例。

    1.6K90

    论 Android 中 Span 的正确打开方式

    一个更好的选择是调用 textView.setText(CharSequence, BufferType) 并在按钮被点击时只更新 Spannable 对象的 span。..., BufferType)时, BufferType 参数通知 TextView 什么类型的文字被设置了:静态(调用 textView.setText(CharSequence) 时的默认选项)、styleable...额外的性能建议 如果你只需要改变一个 span 的内部属性,在自定义的着重号 span 中改变其颜色),你不需要再次调用 TextView.setText ,而只需要调用 invalidate() 或...span 传递 太长不看版 在进程内和跨进程的 span 传递中,自定义 span 特性将不会被使用。...使用 Android 中的文本是一个常见的操作,调用正确的 TextView.setText 方法将有助于使你降低 app 的内存消耗,并提高其性能。

    1.6K50

    android 之ViewStub

    那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。...ViewStub只能用来Inflate一个布局文件,而不是某个具体的View,当然也可以把View写在某个布局文件中。     ...下面来看一个实例 在这个例子中,要显示二种不同的布局,一个是用TextView显示一段文字,另一个则是用ImageView显示一个图片。... text = (TextView) findViewById(R.id.viewstub_demo_textview);               text.setText("The tree of...某些布局属性要加在ViewStub而不是实际的布局上面,才会起作用,比如上面用的android:layout_margin*系列属性,如果加在TextView上面,则不会起作用,需要放在它的ViewStub

    75490

    android之Fragment介绍

    其行为与Activity很相似, 有自己对应的布局(包含具体的View), 它有自己的生命周期,接收自己的输入事件,并且可以从运行中的activity中添加或移除。...一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity的影响。本质上会产生一个FrameLayout,它加载的布局为其子布局。...Fragment的生命周期 image.png onCreateView是创建的时候调用,onViewCreated是在onCreateView后被触发的事件,前后关系 就是fragment中的onCreateView...方法 为Fragment创建视图(加载布局)时调用(给当前的fragment绘制UI布局,可以使用线程更新UI) onActivityCreated方法 当Activity中的onCreate方法执行完后调用...(表示activity执行oncreate方法完成了的时候会调用此方法) onDestroyView方法 Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局) onDetach

    81620

    【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )

    不生成字段 : 第三个 TextView 没有定义 id 属性 , ActivityMainBinding 中不会生成该组件对应的字段 ; VIII ....参数 , 可以直接调用 Activity 的 getLayoutInflater() 方法获取 ; /** * 视图绑定类 对象 * binding 中可以获取布局文件中定义的 *...中可以直接通过组件 id 获取对应的组件 binding.textView.setText("ActivityMainBinding 1"); binding.textView2.setText("ActivityMainBinding...没有定义 id 属性 , ActivityMainBinding 中不会生成该组件对应的字段 * * * 不生成绑定类的情况 : 在布局根标签中配置 tools:viewBindingIgnore...(binding.getRoot()); //binding 中可以直接通过组件 id 获取对应的组件 binding.textView.setText("ActivityMainBinding

    1.2K10

    Android Jetpack 组件之 BindingAdapter 详解

    adapters 会最终给你想要的结果,那么当我们在布局文件中使用 databinding 绑定数据时是如何调用对应的属性方法呢?...android:text="@{user.name}" /> 当在布局文件中绑定某个数据时,比如上面的 TextView 的 text 属性,在绑定时会自动接收兼容类型的参数所对应的方法,如 setText...String 的 setName(arg) 方法,反之如果是 int 型,则会调用参数为 Int 的 setName(arg) 方法,所以,为了保证数据的正确性,尽量保证 xml 中表达式中返回值的正确性...从上面分析可知,在布局文件中设置了属性,databinding 库会自动查找相关的 setter 方法进行设置,也就是说,如果以 TextView 为例,只有找到某个 setter 方法就可以进行验证了...,如下面布局文件只使用 imageUrl 和 placeholder 也不会出现编译错误: <ImageView android:layout_width="100dp" android

    1.7K00
    领券