layoutinflater

Android基础-Fragment详解

余生长醉 提交于 2020-03-25 07:45:23
一、目录 什么是Fragment Fragment的生命周期 Fragment的使用方式 什么是Fragment的回退栈?【重要】 Fragment与Activity之间的通信【难点】 Fragment与Activity通信的优化【超难点】 如何处理运行时配置发生变化【以屏幕翻转为例】 二、Fragment详解 1.什么是Fragment? 你可以简单的理解为,Fragment是显示在Activity中的Activity。 它可以显示在Activity中,然后它也可以显示出一些内容。因为它拥有自己的生命周期,可以接受处理用户的事件,并且你可以在一个Activity中动态的添加,替换,移除不同的Fragment,因此对于信息的展示具有很大的便利性。 2.Fragment的生命周期 因为Fragment是依附于Activity存在的,因此它的生命周期收到Activity的生命周期影响: Fragment比Activity多了几个生命周期的回调方法 onAttach(Activity) 当Fragment与Activity发生关联的时候调用 onCreateView(LayoutInflater, ViewGroup, Bundle) 创建该Fragment的视图 onActivityCreate(Bundle) 当Activity的onCreated方法返回时调用

全局替换字体,开源库更方便!!!

南笙酒味 提交于 2020-03-23 07:04:38
序 在 Android 下使用自定义字体已经是一个比较常见的需求了,最近也做了个比较深入的研究。 那么按照惯例我又要出个一篇有关 Android 修改字体相关的文章,但是写下来发现内容还挺多的,所以我决定将它们拆分一下,分几篇来详细的讲解。主要会是一些常用的替换字体的方案,最后还会介绍一些全局替换的方案,当然也会包含最新的 『Fonts in XML』的方案。 期待你持续关注。 本篇是本系列的第九篇,之前已经发布的文章,有兴趣可以先看看。 Android 字体修改概述|开篇 修改字体需要了解 Typeface 的所有细节 简单粗暴的方式,修改字体 利用反射,修改全局字体 利用 AppCompatDelegate ,全局替换全局字体 通过修改 LayoutInflater,全局替换字体! 自定义属性,支持多个字体文件! Android 可下载字体,Font in xml! 一、前言 之前已经介绍了很多种,快速、低入侵的替换全局字体的方式。但是大多数情况下,我们需要实现的功能,一定已经有现成的实现方案。 本文就介绍一个 Github 上,比较火的全局替换字体的开源库,差不多阅读文档加集成,一个小时全局替换字体不是梦。 这个开源替换字体库就是 Calligraphy: https://github.com/chrisjenx/Calligraphy 二、如何使用Calligraphy

Android初学第20天

北慕城南 提交于 2020-03-20 07:40:41
Android初学第20天 09_LayoutsAndWidgets 代码 CrimeListFragment.java package com.bignerdranch.android.criminalintent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import java.util.List; public class CrimeListFragment extends Fragment { private RecyclerView mCrimeRecyclerView; private CrimeAdapter

Android-View的绘制源码学习总结

ぐ巨炮叔叔 提交于 2020-03-17 03:02:22
##前言 算是第一篇正式的github博文,回顾了一下之前看过的view源码解析,做一个对目前为止View学习小的总结。 我觉得对于源码的解析和学习,把所有流程记下来意义并不是很大,最关键的是: 1.知道基本作用和用法 2.大概了解整个流程和实现方法 3.了解里面可扩展的地方在哪,更灵活地使用 4.整个源码设计和细节有没有什么亮点值得参考和学习 5.源码设计的思路 这也是写这篇文章的目的所在。 ##加载布局 ####LayoutInflater http://www.cnblogs.com/qlky/p/5674975.html - **作用** LayoutInflater是用来加载布局的,我们最简单的代码: ``` protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mainlayout); } ``` 中的setContentView就是用LayoutInflater实现的 - **用法** 可以用来动态加载布局 ``` LayoutInflater layoutInflater = LayoutInflater.from(this); View buttonlayout = layoutInflater

Android中的LayoutInflater有什么作用?

≯℡__Kan透↙ 提交于 2020-03-14 18:15:40
Android中的 LayoutInflater 什么用? #1楼 这是另一个与前一个类似的示例,但进一步展示了它可以提供的膨胀参数和动态行为。 假设您的ListView行布局可以包含可变数量的TextView。 所以首先你膨胀基础项View(就像前面的例子一样),然后在运行时循环动态添加TextViews。 使用android:layout_weight还可以完美地对齐所有内容。 以下是Layouts资源: list_layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/field1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2"/> <TextView android:id="@+id

使用kotlin开发android

拈花ヽ惹草 提交于 2020-03-10 23:45:25
说明 本篇简单介绍使用kotlin开放android的基本操作,有关kotlin的配置,文件创建,基础语法等。 创建kotlin开发环境 通过gradle创建基本的kotlin开发环境,需要使用kotlin支持插件,用于支持android开放,其基本配置build.gradle文件如下: buildscript { ext.kotlin_version = '1.1.3-2' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } repositories { repositories { jcenter() } } //使用android 插件 apply plugin: 'com.android.application' //使用kotlin支持android插件 apply

Fragment(碎片)的替换

守給你的承諾、 提交于 2020-03-09 11:28:40
第一步:新建工程(略); 第二步:新建3个Fragment,它们是LeftFragment,RightFragment,AnotherRightFragment,让它们自动生成的XML文件。 各自的文件内容如下: --------------------------------- LeftFragment.java 包文件让它自动导入即可 --------------------------------- public class LeftFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_left, container, false); } } 代码解説: LayoutInflater 是一个抽象类,当我们平时需要加载layout文件来转换成View的场景都会用到它,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;对于一个没有被载入或者想要动态载入的界面

动态设置布局LayoutInflater

泄露秘密 提交于 2020-02-29 21:26:27
LayoutInflater作用是将layout的xml布局文件实例化为View类对象。LayoutInflater 的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout目录下的xml布局文件。而且实例化!而 findViewById()是找详细某一个xml下的详细 widget控件(如:Button,TextView等)。 获得 LayoutInflater 实例的三种方式、 1.LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater() 2.LayoutInflater inflater = LayoutInflater.from(this); 3.LayoutInflater inflater = (LayoutInflater)Context.getSystemService(LAYOUT_INFLATER_SERVICE); getLayoutInflater(): Activity 的 getLayoutInflater() 方法是调用 PhoneWindow 的getLayoutInflater()方法。看一下该源码: public PhoneWindow(Context context) { super(context)

LayoutInflater的获取与使用

微笑、不失礼 提交于 2020-02-29 21:14:16
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入; 2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。 LayoutInflater 是一个抽象类,在文档中如下声明: public abstract class LayoutInflater extends Object 获得 LayoutInflater 实例的三种方式 LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater() LayoutInflater localinflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater inflater =

Android - RecyclerView进阶(1)—LayoutInflater

若如初见. 提交于 2020-02-24 13:53:39
我的CSDN: ListerCi 我的简书: 东方未曦 RecyclerView是项目中使用最为频繁的控件之一,相关的知识点非常多,如果对RecyclerView的了解不够深入,那么在进行性能优化、自定义动画等工作时就会觉得力不从心。博主本人也有过多次这样的经历,因此下定决心要对RecyclerView相关的知识进行整理和学习,所以有了这一系列的博客。 本系列将会对RecyclerView的内容和进阶使用进行介绍,包括布局加载、ItemDecoration、item动画、LayoutManager、ViewHoler重用和RecyclerView封装等内容,本文是第一篇,先来介绍一下ViewHolder视图的加载。话不多少,让我们开始吧。 一、加载布局的三个方法 我们一般通过LayoutInflater将布局文件加载到某个界面或者Layout中,加载布局文件时有如下3个方式。 LayoutInflater . from ( mContext ) . inflate ( R . layout . item , null ) ; LayoutInflater . from ( mContext ) . inflate ( R . layout . item , parent , false ) ; LayoutInflater . from ( mContext ) . inflate