-
这里的positionOffset的偏移量是position的倍数,而不是偏移offset的绝对值查看全部
-
1、viewPagerIndicator原理掌握 2、组合方式去实现自定义控件 3、在自定义控件中选择合适的方法进行合适的操作 4、Canvas.tranlate Path 5、自定义控件使用了某个接口,那么需要额外提供一个接口供用户去使用查看全部
-
总结——自定义viewpager查看全部
-
dispatchDraw,分发绘制容器子控件重写,绘制控件一般重写onDraw() onSizeChanged()是在布局发生变化时的回调函数,间接回去调用onMeasure, onLayout函数重新布局 onFinishInflate() 当View中所有的子控件 均被映射成xml后触发 onMeasure(int, int) 确定所有子元素的大小,就是xxx.xml那个文件加载完,要不然,在自定义View不在这个方法获取控件,就有可能布局还没加载完你就想要获取控件导致空指针,在这个方法中获取就确保XML加载完了查看全部
-
高亮tab文本查看全部
-
根据title动态创建Tab的textView。 这个地方有点奇怪。 没直接设置宽度,而是先设置了MATCH_PREANT,然后又修改为可见的宽度。直接设置的话可以优化一点查看全部
-
获取屏幕的宽度 1. 获取屏幕宽度的方法不需要那么麻烦,具体代码如下: DisplayMetrics metrics = getResources().getDisplayMetrics(); int mScreenWidth = metrics.widthPixels;查看全部
-
onFinishInflate()在加载完xml布局文件后被调用,可以在里面做一些根据xml里的自定义属性对布局进行修改的事情(如设置layoutParams改变控件大小)查看全部
-
通过TypedArray获取自定义属性查看全部
-
自定义属性,先声明属性类型integer,在通过declare—styleable把该自定义属性公布出去,用于修改查看全部
-
在onCreateView中取出newInstance传递进来的参数查看全部
-
Fragment newInstance的作用:fragmnet经常会被销毁重新实例化,Android framework只会调用fragment无参的构造函数。在系统自动实例化fragment的过程中,你没有办法干预。一些需要外部传入的参数来决定的初始化就没有办法完成。使用静态工厂方法,将外部传入的参数可以通过Fragment.setArgument保存在它自己身上,这样我们可以在Fragment.onCreate(...)调用的时候将这些参数取出来;重新构建Fragment时,原先的Fragment的字段值将会全部丢失,但是通过Fragment.setArguments(Bundle bundle)方法设置的bundle会保留下来。所以尽量使用Fragment.setArguments(Bundle bundle)方式来传递参数。查看全部
-
声明ViewPager 声明viewPagerIndicotar查看全部
-
移动时 if (position >= (visibleTabCount-2) && offset>0 && itemcount>visibleTabCount&& position<itemcount-2 ){ 加上&&position<itemcount-2,效果更佳 public void setTitleTab(List<String> titles){ if (titles!= null && titles.size()>0){ this.removeAllViews(); this.TabTiitles = titles; for(String title:TabTiitles){ addView(getTextView(title)); } onFinishInflate(); } } 要再加上onFinishInflate才正常。来不及细看,先回宿舍睡觉……………查看全部
举报
0/150
提交
取消