inflate就是填充充气的意思,恩,就类似给一个空的娃娃充气,呃,跑题了。...getPageTitle 这个方法,返回的就是Item 1, Item 2…… 这样的东西,在SlidingTabLayoout那个自定义控件中会被调用,然后来设置Tab Head的文字。...instantiateItem 当ViewPage实例化的时候,设置ViewPage的layout为pager_item,并且设置里面的文字。...设置Tab Head平分铺满 大概整个过程我们以及弄清楚了,除了那个自定义控件。这时候把getCount方法的返回值改成2,发现Tab Head并没有铺满屏幕,还是一个个往左对齐,这样很丑对不对。...tab view layout id时,就尝试用这个自定义的来『充气』。
,背景色黑色半透明,这个布局和上面的ViewPager底部对齐layout_alignBottom=”@id/xxx” TextView/>居中显示, 小点部分,先放过空的LinearLayout,id...是ll_points在代码中对其进行填充 获取ViewPager对象 调用ViewPager对象的setAdapter()方法,参数:PagerAdapter对象 因为PagerAdapter是抽象类,...定义一个MyPagerAdapter继承PagerAdapter,实现以下方法 重写getCount()方法,返回轮播的个数 重写isViewFromObject()方法,返回布尔值, 重写instantiateItem...onPageScrolled()方法,当页面正在滚动的时候 onPageScrollStateChanged()方法,当页面滚动状态改变的时候 小图标部分 新建两个shape文件,使用xml画两个原点 添加节点,设置形状为原型...对象,调用LayoutParams对象的rightMargin()方法,设置margin值 调用ImageView对象的setEnabled()方法,设置是否可用,参数:布尔值 获取LinearLayout
.setClickLooper(true) // 设置开启第二种效果的无限循环 .init(); ...// 实例化全部 效果图: 第一类效果,布局嵌套时,缩略图形式显示滑动 ?...LoopViewpagerAdapter 类,继承于 PagerAdapter,主要实现功能是无限循环,逻辑处理比较集中于此,通过接口方式加载页 View。...,此时没有之前的 view 赋值,直接 view[max-1] 会造成 空指针 exception,这是会初始化的有 max-2,max,max-1 */ 77 /*if...(images>2){ // 最小情况的判断,因为此时的 container 还没有移除下标 0 的图片,再添加的话会造成不能重复添加的异常 78 views[
通过指针调用函数: 指针名 = &函数名 (这是给函数指针赋值) 拷贝、加括号、换名、加星号 __block关键字 在block中要使用零时变量 block传值 反向传值 适配中分页控件和滚动视图相结合...计算时间差的时候出现负数符号? 解决:调用方法时两个参数传的有问题,可能是反了,以至于出现了负数。...设置应用图标: 需要在Info.plist里设置,添加key为Icon files的值,分别添加上面对应图标名称,到列表,例如: ? 怎么解决标签栏隐藏时,画面不和谐的情况?...如何获取全屏图片用于上传 command+S 10.4 新加: 为ViewController添加导航控制器(xcode6中将自动设置为根视图控制器)?...设置键盘的样式 : textView.keyboardtype = UIKeyboardTypeNumberPad; 利用xib创建单元格之后的复用问题: 在xib中设置
数据改变时,驱动UI刷新;操作UI时,也可以同步给数据。通常在开发界面时,总有findViewById的重复工作,DataBinding可以免去这些操作。...= null) { return result; } } return null; } 那么mMappers的值是在什么时候设置的呢?...//调用父类ActivityMainBinding的构造方法,为TextView赋值 super(bindingComponent, root, 0, (android.widget.TextView...= 0) { //这里对数据进行了判空,避免了空指针 if (user !...减少判空代码和空指针异常 省去了找id操作,不会再出现id找不着的情况 缺点: apt创建了很多类,增大包体积和编译时长 参考文章 简书-Android中的DataBinding的原理浅析
我们首先考虑的还是ViewPager+PagerAdapter的实现策略。 后面在网上了搜了一下, 发现要实现上面的效果,我们需要注意两个方面,首先是怎么在两边显示两个小图,第二,怎么实现无限滑动。...当设置android:clipChildren="false"的时候,子View 就可以在父View 的padding内容区域显示内容了。...这个值直接关系到ViewPager的“边界”,因此当我们把它设置为Integer.MAX_VALUE之后,用户基本就看不到这个边界了(估计滑到这里的时候电池已经挂了吧o_O)。...当然,通常情况下设置为100倍实际内容个数也是可以的,之前看的某个实现就是这么干的。...instantiateItem() 方法position的处理:由于我们设置了count为 Integer.MAX_VALUE,因此这个position的取值范围很大很大,但我们实际要显示的内容肯定没这么多
当然标题文本可以不使用TextView自己绘制。如果需要按下标签时的背景切换效果,使用TextView更好些,而且文本换行,大小等也好控 制。...TabIndicator的设置 TabIndicator作为一个ViewGroup,它需要绘制内容的话就需要设置属性setWillNotDraw(false);以保证它的onDraw()被执行。...进行显示,为了让水平方向等分宽度,childView设置weight为1。...TabView时,已经使用marginRight预留了它的显示位置。...记得对onViewPagerPageChanged()的调用为了不和onPageScrolled()中的调用冲突,它只在 ViewPager处在SCROLL_STATE_IDLE状态时进行。
,这样可以像Java那样如果为空就报空指针异常,还有一种是字段后加?,这样可以不做处理返回null或者配合?:(相当于Java中的三元运算)做判空处理: 1//类型后面加?...表示可为空 2var age: String? = "23" 3//抛出空指针异常 4val ages = age!!....length 如果name为null,那么会宝空指针异常,否则会返回name的长度,它与?的区别在于它不允许为空,为空就报空指针异常。 5、as 与 as?...操作符 这两个操作符都是用来类型转换的,但是前者可能会出现类型转换出错,然后会报ClassCastException异常,后者当出现类型转换的错误时会返回null。...,以闭包形式返回,返回值为最后一行的值或者指定的return的表达式。
有的APP进行了处理,会发现,当程序出现异常的时候,会Toast一个提示“程序出现异常,3秒后将退出程序”。3秒后即关闭程序而不再显示强制关闭的对话框。 ...------------------------------------- 一、创建一个类 CrashHandler 实现 UncaughtExceptionHandler 接口 , 当程序发生未捕获异常时...UncaughtException处理器 mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler(); //设置该... 给一个没有绑定的TextView赋值 , 空指针的异常 public class MainActivity extends Activity { private TextView text...所以总会有没有捕获到的异常出现。 进行对未捕获异常的处理,可以提高一个用户体验。 开发者们 也可以 在这个处理中添加异常分析,将出现的异常设备、原因、时间等信息提交到自己的服务器上方便以后分析。
ViewPager还有一个比较重要的函数是: viewPager.setOffscreenPageLimit(int limit); 这个方法默认值为1,Google在开发ViewPager时,考虑到如果滑动的时候才创建...Fragment实例时会带来一定程度的卡顿,因此为ViewPager设置了缓存机制,而上述函数则是设置缓存Fragment的数量,示意图如下: 也就是说,limit的值代表着还要缓存当前Fragment...= false; //不可见 boolean mIsFirstLoad = true; //第一次加载 当然在onCreateView中确保了View已经准备好时,将mPrepare置为true,在setUserVisibleHint...中确保了当前可见时,mIsVisible置为true,第一次加载完毕后则将mIsFirstLoad置为false,避免重复加载。...优化方案一:设置缓存页面数 viewPager.setOffscreenPageLimit(int limit) 能够有效地一次性缓存多个Fragment,这样就能够解决在之后每次切换时不会创建实例对象
设置适配器 5. 标题栏 1. xml引用 2. 重写PagerAdapter的getTitle()方法 6. 翻页动画 1. DepthPageTransformer 2....相同点: FragmentPagerAdapter和FragmentStatePagerAdapter都继承自PagerAdapter 不同点: 卸载不再需fragment时,各自采用的处理方法有所不同...FragmentStatePagerAdapter类名中的“state”表明:在销毁fragment时,可在onSaveInstanceState(Bundle)方法中保存fragment的Bundle...(Transformer.Default); // 设置轮播时间 banner.setDelayTime(4000); // banner设置方法全部调用完毕时最后调用...问题 当page宽度 出现闪屏,如下: 解决办法: 当明确知道vp放不下2个page时,可以如下处理 @Override public
tvTitle.setText(imageDescriptions[position]); //把上一个高亮的设置为默认-灰色...llPointGroup.getChildAt(prePosition).setEnabled(false); //当前设置为高亮-红色...滑动的页面数量是由适配器的getCount方法决定的,所以,我们在getCount方法里直接返回Integer.MAX_VALUE,这是int的最大值,这个数量已经非常庞大了,可以说近似于无限滑动,但是设置如此大的数量...tvTitle.setText(imageDescriptions[realPosition]); //把上一个高亮的设置为默认-灰色...llPointGroup.getChildAt(prePosition).setEnabled(false); //当前设置为高亮-红色
节点中加入以下代码: android:name=”JUHE_KEY” android:value=”你的appkey” /> 4.在src中加入MyApplication类,并且在AndroidManifest.xml...文件中将application的name属性设置为src中定义的MyApplication(如android:name=”com.bear.smscaptcha.MyApplication”),在MyApplication...afterTextChanged(Editable arg0) { // TODO Auto-generated method stub } }); } //根据edittext的内容来判断是否应当出现...; -3 服务器网络异常;-4 解析错误;-5初始化异常 reason 返回信息 成功或错误原因. result 返回结果,JSON格式.错误或者无返回值时为空. */ mCaptcha.sendCaptcha...; -3 服务器网络异常;-4 解析错误;-5初始化异常 reason 返回信息 成功或错误原因. result 返回结果,JSON格式.错误或者无返回值时为空. */ mCaptcha.commitCaptcha
实现无限循环 在getCount()方法中,返回一个很大的值,Integer.MAX_VALUE 在instantiateItem()方法中,获取当前View的索引时,进行取于操作,传递进来的int position...是个非常大的数,对他进行求余数 在destroyItem()方法中,同样 在onPageSelected()监听方法中,对传递进来的索引进行取于 反向的无限循环 调用ViewPager对象的setCurrentItem...()方法,设置第一次进来时候的当前页,参数:int数字,我们把它定位到Integer.MAX_VALUE的中间,并且保证第一条是当前位置,Integer.MAX_VALUE/2-((Integer.MAX_VALUE...java.util.List; import android.app.Activity; import android.os.Bundle; import android.support.v4.view.PagerAdapter...points.add(image); ll_points.addView(image); } // 设置适配器
Override protected void onDestroy() { super.onDestroy(); cancelTimer(); } } 存在的问题 CountDownTimer如果使用不当,常常会报空指针异常...Activity或者Fragment已经被系统回收,从而里面的变量被设置为Null,再调用 textView.setText(time+”秒”); textView为空,也就空指针了 同时,CountDownTimer...中的Handler方法还在继续执行,这一块空间始终无法被系统回收也就造成了内存泄漏问题 总结 1、在CountDownTimer的onTick方法中记得判空 activity中 if(MainActivity.this.isFinishing...是否为空 @Override public void onFinish() { if(getFragmentManager()!...=null){ dismiss(); } } 3、在使用CountDownTimer时,在宿主Activity或fragment生命周期结束的时候,记得调用timer.cancle()方法 @Override
在翻页过程中,状态值变化依次为:正在滑动->滑动完毕->静止。 onPageScrolled : 在翻页过程中调用。...该方法的三个参数取值说明为:第一个参数表示当前页面的序号;第二个参数表示当前页面偏移的百分比,最小值为0,最大值为1;第三个参数表示当前页面的偏移距离,单位px。...在翻页过程中,状态值变化依次为:正在滑动->滑动完毕->静止。 onPageScrolled : 在翻页过程中调用。...该方法的三个参数取值说明为:第一个参数表示当前页面的序号;第二个参数表示当前页面偏移的百分比,最小值为0,最大值为1;第三个参数表示当前页面的偏移距离,单位px。...另外,不要忘了在图片轮播时,下方图标也要跟着切换。为此需要给轮播事件加个监听器,以便每次轮播都能触发下方图标的变化。
1.1 Kotlin基于Java的空指针提出了一个空安全的概念,即每个属性默认不可为null。...例如: var a: String = "test kotlin" a = null //编译错误 如果要允许为空,我们需要手动声明一个变量为可空字符串类型,写为Stringvar a: String?...是非空断言运算符。将任何值转换为非空类型,若该值为空则抛出异常。 object Test { var s:String?...结合使用, let函数可以在对象不为 null 的时候执行函数内的代码,从而避免了空指针异常的出现。 一般是这样使用: ?....R.string.you_have_not_completed_the_details)).show() return@onClickRight } } 可以使用let函数进行优化,避免出现空指针的情况
DataBinding 能够省去我们一直以来的 findViewById() 步骤,大量减少 Activity 内的代码,数据能够单向或双向绑定到 layout 文件中,有助于防止内存泄漏,而且能自动进行空检测以避免空指针异常...控件挂钩,通过设置 userInfo 的变量值同时使 TextView 显示相应的文本 完整的布局代码如下所示 在预览视图中什么都不会显示,不便于观察文本的大小和字体颜色等属性,此时可以为之设定默认值(文本内容或者是字体大小等属性都适用),默认值将只在预览视图中显示,且默认值不能包含引号 android:...View.VISIBLE : View.GONE}" /> 避免空指针异常 DataBinding 也会自动帮助我们避免空指针异常 例如,如果 "@{userInfo.password}" 中 userInfo...为 null 的话,userInfo.password 会被赋值为默认值 null,而不会抛出空指针异常 七、include 和 viewStub include ------- 对于 include
,ViewPager和TextView,其中ViewPager自然是用来管理所有的图片的了,而TextView则是用于显示当前图片的页数以及总页数。...()方法来设置当前显示的是哪一张图片。...可以看到,它是一个继承了PagerAdapter的适配器,是专门用于在ViewPager中使用的。...而destroyItem()方法中,则是要把应该销毁的View对象回收掉,以防止图片过多导致OOM出现。...Toast.LENGTH_SHORT).show(); } } /** * 遍历imageViewList中的每张图片,对图片的可见性进行检查,如果图片已经离开屏幕可见范围,则将图片替换成一张空图
tips:快速查阅 ctrl + F 输入关键字(异常名字)查找。...(TextView.java:3888) at com.belongsoft.cloudhelpstudent.adapter.VoteListAdapter.getView(VoteListAdapter.java...:94) 这里的错误是因为 在VoteListAdapter的94行 settext里面 设置是的 int 类型的值 4.android.os.NetworkOnMainThreadException...造成这样的错误原因是代码不符合Android规范,如果把上面访问方式改为异步操作就不会出现在4.0上访问出现 android.os.NetworkOnMainThreadException异常....8. java.lang.NullPointerException 1).自定义view的时候在ondraw方法中最后一次参数穿了null.就像下面的代码。就会报空指针。
领取专属 10元无门槛券
手把手带您无忧上云