-
不错蛮好的查看全部
-
我可以把笔记显示在哪里查看全部
-
哦哦哦查看全部
-
/** *容器移动的条件,讲到的三个条件,还需要考虑一下最后一个位置,所以根据所讲的内容,自己改进了一下,自认为更符合。 */ if (position >= mTabVisibleCount - 2 && offset > 0 && getChildCount() > mTabVisibleCount) { //容器移动的距离 if(mTabVisibleCount==1&&position<getChildCount()-1){//只有一个可见的tab this.scrollTo((int) (position * tabWidth + tabWidth * offset), 0); }else if(mTabVisibleCount==2&&position<getChildCount()-2){//只有两个可见tab this.scrollTo((int) (position * tabWidth + tabWidth * offset), 0); }else if (position < getChildCount() - 2) { this.scrollTo((int) ((position - (mTabVisibleCount - 2)) * tabWidth + tabWidth * offset), 0); } }查看全部
-
监听滚动查看全部
-
mPint.setPathEffect(new CornerPathEffect(3));//绘制圆角 mPint-画笔查看全部
-
List<String> mString = Array.asList("内容1","内容2");,直接初始化String数组查看全部
-
高亮参考代码: private void highLightTabTitle(int pos) { for (int i = 0; i < getChildCount(); i ++) { TextView tv = (TextView) getChildAt(i); if (i == pos) { tv.setTextColor(COLOR_TEXT_HIGHLIGHT); } else { tv.setTextColor(COLOR_TEXT_NORNAL); } } }查看全部
-
这个地方有点奇怪。 为什么不直接设置宽度?而是先设置了MATCH_PREANT,然后又修改为可见的宽度。 只有一个答案:作者没走心。查看全部
-
说实在的,我不清楚这里为什么要-2,假设显示4屏,共有6屏,再第三屏就移动也挺奇怪的。分享一下我自己写的方便理解的移动方法: // 容器移动,当tab处于可见最后一个position时 //Log.e("TAG", "tabWidth=" + tabWidth + ", visibleCount=" + mTableVisibleCount + ", position=" + position); if (getChildCount() > mTableVisibleCount && positionOffset > 0 && position >= mTableVisibleCount - 1) { Log.e("TAG", "scroll by x=" + (tabWidth * positionOffset)); this.scrollTo((int) ((position + 1 - mTableVisibleCount) * tabWidth + tabWidth * positionOffset) ,0); }查看全部
-
我猜测这里不使用scrollBy是有原因的。因为scroll方法会被多次调用,导致每次的偏移量累加,会出问题。查看全部
-
这里两点需要说明: 1. 获取屏幕宽度的方法不需要那么麻烦,具体代码如下: DisplayMetrics metrics = getResources().getDisplayMetrics(); int mScreenWidth = metrics.widthPixels; 2. 一定不要忘记,需要把LayoutParams的weight置为0,只设置宽度是没用的。查看全部
-
哦哦哦查看全部
-
带截图的笔记保存查看全部
-
哈哈哈查看全部
举报
0/150
提交
取消