Git Product home page Git Product logo

rollviewpager's Introduction

RollViewPager

A Viewpager can auto-play.

中文 | English

The touch will pause playback, continue to play until a delay period after the end of the touch.
looks like this,Indicator can be customized to point or number, the gravity can be changed also.
example

Depandence

compile 'com.jude:rollviewpager:1.4.6'

Usage

<com.jude.rollviewpager.RollPagerView
    android:layout_width="match_parent"
    android:layout_height="180dp"
    app:rollviewpager_play_delay="3000"/>

app:rollviewpager_play_delay="3000" period,unit is ms。0 for no auto-play。default is 0.
app:rollviewpager_hint_gravity="center" graviengty. left,center,right。default is center.
app:rollviewpager_hint_color="#7c7c7c" color for indicator's container.default is black.
app:rollviewpager_hint_alpha="80" alpha for indicator's container。0 for complete transparent,255 for no transparent。default is 0.
app:rollviewpager_hint_paddingLeft="16dp" padding for indicator's container
app:rollviewpager_hint_paddingRight="16dp"
app:rollviewpager_hint_paddingTop="16dp"
app:rollviewpager_hint_paddingBottom="16dp"

Generally just need set the play_delay.

##HintView provide Hintview to DIY the indicator; setHintView(HintView hintview)

  • HintView
    • ShapeHintView
      • IconHintView
      • ColorPointHintView
    • TextHintView

For example:

mRollViewPager.setHintView(new IconHintView(this,R.drawable.point_focus,R.drawable.point_normal));
mRollViewPager.setHintView(new ColorPointHintView(this, Color.YELLOW,Color.WHITE));
mRollViewPager.setHintView(new TextHintView(this));
mRollViewPager.setHintView(null);//hide the indicator

##ItemClickListener

mRollViewPager.setOnItemClickListener(new OnItemClickListener() {
  @Override
  public void onItemClick(int position) {
      Toast.makeText(MainActivity.this,"Item "+position+" clicked",Toast.LENGTH_SHORT).show();
  }
});

##Adapter There offer two Adapter for use conveniently.the RollViewPager can also user other PagerAdapter.

####StaticPagerAdapter this Adapter will store the every page(View), Once create multiple use.may take up more memory. Like FragmentPagerAdapter.this can use for any ViewPager;

####DynamicPagerAdapter this Adapter will not store the View.it create new View every time.save the memory. Like FragmentStatePagerAdapter.this can use for any ViewPager;

//the usage of the 2 adapter is same;
mRollViewPager.setAdapter(new TestNomalAdapter());
private class TestNomalAdapter extends StaticPagerAdapter{
    private int[] imgs = {
            R.drawable.img1,
            R.drawable.img2,
            R.drawable.img3,
            R.drawable.img4,
    };

    @Override
    public View getView(ViewGroup container, int position) {
        ImageView view = new ImageView(container.getContext());
        view.setImageResource(imgs[position]);
        view.setScaleType(ImageView.ScaleType.CENTER_CROP);
        view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        return view;
    }
    
    @Override
    public int getCount() {
        return imgs.length;
    }
}

####LoopPagerAdapter A loop adapter.realize by return MAX_INT in getCount(). same as StaticPagerAdapter in page store.Once create multiple use. this adapter only for RollViewPager. the usage is very simple。

mRollViewPager.setAdapter(new TestLoopAdapter(mRollViewPager));
private class TestLoopAdapter extends LoopPagerAdapter{
    private int[] imgs = {
            R.drawable.img1,
            R.drawable.img2,
            R.drawable.img3,
            R.drawable.img4,
    };
    
    public TestLoopAdapter(RollPagerView viewPager) {
        super(viewPager);
    }
    
    @Override
    public View getView(ViewGroup container, int position) {
        ImageView view = new ImageView(container.getContext());
        view.setImageResource(imgs[position]);
        view.setScaleType(ImageView.ScaleType.CENTER_CROP);
        view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        return view;
    }
    
    @Override
    public int getRealCount() {
        return imgs.length;
    }
}

Play Control

rollViewPager.pause()
rollViewPager.resume()
rollViewPager.isPlaying()

License

Copyright 2015 Jude

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

rollviewpager's People

Contributors

jude95 avatar kfgtrehj avatar moiling avatar ravidsrk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rollviewpager's Issues

与Glide结合使用时比例失真bug

与Glide图片加载框架结合使用时,加载进来的图片有时会比例失真,有时又是比例正常的。请解决比例失真的bug

代码:
LoopPagerAdapter loopPagerAdapter=new LoopPagerAdapter(rollPagerView) {
@OverRide
public View getView(ViewGroup container, int position) {
ImageView imageView = new ImageView(container.getContext());

            Glide
                    .with(MainFragment.this)
                    .load(xxxxxxxUrl)
                    .centerCrop()
                    //.placeholder(R.color.windowBackground)
                    //.diskCacheStrategy(DiskCacheStrategy.SOURCE)
                    .crossFade()
                    .into(imageView);


            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setLayoutParams(new                            ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
            return imageView;
        }

        @Override
        public int getRealCount() {
            return rollPicList==null?1:rollPicList.size();
        }

    };

    rollPagerView.setAdapter(loopPagerAdapter);
    rollPagerView.setPlayDelay(4000);
}

能往一个方向轮播么?

能往一个方向轮播么?比如往左都只往左无限轮播,现在是第一张左划不到最后一张,最后一张右滑不到第一张

notifyDataSetChanged会崩

比如说,刚开始的广告有4页,刷新后只有1页时.只要上次的广告停留的不是第一页,刷新后不仅图片没有刷新,而且必崩。提示信息如下

java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 4, found: 1 Pager id: com.zhipu.salehelper.referee:id/viewpager_inner Pager class: class android.support.v4.view.ViewPager Problematic adapter: class com.zhipu.salehelper.referee.adapter.HomeLooperAdapter
                                                                                  at android.support.v4.view.ViewPager.populate(ViewPager.java:1000)
                                                                                  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:552)
                                                                                  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:514)
                                                                                  at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:495)
                                                                                  at com.zhipu.salehelper.referee.widget.rollviewpager.RollPagerView$TimeTaskHandler.handleMessage(RollPagerView.java:133)
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:111)
                                                                                  at android.os.Looper.loop(Looper.java:194)
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5549)
                                                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                                                  at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)

可以看出at com.zhipu.salehelper.referee.widget.rollviewpager.RollPagerView$TimeTaskHandler.handleMessage(RollPagerView.java:133)这一行崩的。
刷新代码如下

bannerList.clear();
bannerList.addAll(list);
mLooperAdapter.notifyDataSetChanged();

IllegalStateException

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

为啥我用颜色还是iconHintView圆点有很模糊有马赛克效果呢..

而且不管传入什么大小图片,圆点大小都不变.

<com.jude.rollviewpager.RollPagerView
android:layout_width="match_parent"
android:layout_height="@dimen/base168dp"
android:id="@+id/tabhome_autovp"
app:rollviewpager_play_delay="3000"
app:rollviewpager_hint_paddingBottom="@dimen/base8dp"
></com.jude.rollviewpager.RollPagerView>

tabhomeAutovp.setHintView(new IconHintView(getActivity(), R.drawable.point_white, R.drawable.point_white80));
tabhomeAutovp.setAdapter(new LoopAdapter(tabhomeAutovp, vpPics));

Android 4.4 不兼容?

在5.0以上运行没有问题,但是在4.4以下却是空白,什么都不显示。

是不是不兼容5.0以下版本?

以下是我的代码:

在RecyclerView Holder中嵌入RollPagerView

public class ViewBannerHolder extends RecyclerView.ViewHolder{

        @BindView(R.id.news_banner)
        RollPagerView mNewsBanner;

        ViewBannerHolder(View v, List<News> topNewses) {
            super(v);
            ButterKnife.bind(this, v);

            this.mNewsBanner.setHintView(new ColorPointHintView(v.getContext(), Color.YELLOW, Color.WHITE));
            this.mNewsBanner.setAdapter(new TopNewsLoopAdapter(mNewsBanner, topNewses));
        }
    }

在RecyclerView.Adapter的onCreateViewHolder()方法中构建ViewBannerHolder:

if(position == 0 && null != mTopNewses){
    View view = this.mLayoutInflater.inflate(R.layout.news_adapter_banner, parent, false);;
    return new ViewBannerHolder(view, mTopNewses);
}

RollViewPaper Adapter:

public class TopNewsLoopAdapter extends LoopPagerAdapter {

    private List<News> mTopNews;

    public TopNewsLoopAdapter(RollPagerView viewPager) {
        super(viewPager);
    }

    public TopNewsLoopAdapter(RollPagerView viewPager, List<News> topNews){
        super(viewPager);
        this.mTopNews = topNews;
    }

    @Override
    public View getView(ViewGroup container, int position) {
        View view = LayoutInflater.from(container.getContext()).inflate(R.layout.news_adapter_banner_view, container, false);

        final News news = this.mTopNews.get(position);
        ImageView imageView = (ImageView)view.findViewById(R.id.news_banner_image);
        ImageUtil.displayImage(container.getContext(), imageView, news.getImage());

        TextView textView = (TextView)view.findViewById(R.id.news_banner_title);
        textView.setText(news.getTitle());

        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(v.getContext(), NewsDetailActivity.class);
                intent.putExtra("newsId", news.getId());
                v.getContext().startActivities(new Intent[]{intent});
            }
        });
        return view;
    }

    @Override
    protected int getRealCount() {
        return null==this.mTopNews ? 0 : this.mTopNews.size();
    }
}

滑动一半时取消,会调错页

比如手指左滑 : 在第三页拖到第四页, 拖动到一半(或多或少都会) 然后取消滑动。
正常是回到第三页的。
但是有时会直接退回到第二页去。(换个方向也会)

getItemPosition返回值疑问

default
如图:
返回POSITION_UNCHANGED不是可以减少调用instantiateItem去创建ChildView;
而返回POSITION_NONE则要求每次notify的时候,(清理缓存)clear viewList,从新调用instantiateItem去创建一系列(默认3个)ChildView,加入到viewList;

请问:使用POSITION_NONE的原因,没有弄清楚真正的用意,很困惑,求解

直接gradle引用会提示Manifest merger failed with multiple errors, see logs

Error:Execution failed for task ':XXXX:processDebugManifest'.
Manifest merger failed with multiple errors, see logs
在主要的 Moudle 中的 AndroidMenifest.xml 如果已有屬性

< application
android:theme="@android:style/Theme.XXX>
< /application>
則在引用的 Library Moudle 中的 AndroidMenifest.xml 也設有相同的屬性設置
android:theme="@android:style/Theme.XXX
則會報出上述錯誤,將 Library Moudle 中的該屬性消除即可。

indicator question

照片由多变少的时候(大于一变为小于等于一) 底部indicator没有被初始化
需要把RollPagerView中的initHint改为public 然后再适配器的getview中作判断
if (_urls.size() < 2) {
_viewPager.setHintView(null);
} else {
_viewPager.initHint(
new ColorPointHintView(_viewPager.getContext(), Color.parseColor("#394482"),
Color.parseColor("#88ffffff")));
}
我这里大于1张才显示indicator。
大神可以考虑把它加到LoopPagerAdapter中

添加文字

请问可以为轮播页添加文字随图片一起滚动播放吗

LoopPagerAdapter的notifydatasetchange问题

不好意思又来了。。我用了LoopPagerAdapter的notifydatasetchange方法,但是使用后似乎向左滑动会出现问题,在第一张图时会无法向左滑动。。。

网络图片部分加载不出来

使用LoopPagerAdapter的时候,会有部分网络图片加载不出来,不入有加载了5张网络图片,可能就会有三张网络图片加载不出来,然后重新刷新又会出来

循环播放时卡顿

轮播图循环时,要等很久才能加载出图片是什么原因呢,求解答
补充:是在请求网络之后再加载要等很久才能加载,尽管轮播图没有用到任何网络数据,setAdapter也执行完了,图片还是没有出来,用PagerView也有这种情况

如果使用LoopPagerAdapter,会有一些小问题

如果使用LoopPagerAdapter,在配合上Picasso轮播网络图片时,如果网络图片稍大,会导致页面挂起,等待Picasso图片加载完毕后才会恢复,而使用staticPagerAdapter时没有这个问题。

滑动不好使

滑动不好使,在右侧向左滑的时候很难滑动到下一页

关于HintView、PointHintView、TextHintView的再抽象

PointHintView其实可以抽象出一个基类,方便继承实现N多种指示器。如:

public abstract class ShapeHintView extends LinearLayout implements HintView {
    private Drawable focusDrawable, normalDrawable;

    protected abstract Drawable makeFocusDrawable();

    protected abstract Drawable makeNormalDrawable();

 @Override
    public void makeView(int length, int gravity) {
        ...
        normalDrawable = makeNormalDrawable();
        focusDrawable = makeFocusDrawable();
        ...
    }
public class CircleHintView extends ShapeHintView {
    @Override
    protected Drawable makeFocusDrawable() {
        GradientDrawable dot_focus = new GradientDrawable();
        dot_focus.setColor(Color.parseColor("#E3AC42"));
        dot_focus.setCornerRadius(Util.dip2px(getContext(), 4));
        dot_focus .setSize(Util.dip2px(getContext(), 8), Util.dip2px(getContext(), 8));
        return dot_focus ;
    }

    @Override
    protected Drawable makeNormalDrawable() {
        GradientDrawable dot_normal = new GradientDrawable();
        dot_normal.setColor(Color.WHITE);
        dot_normal.setAlpha(125);
        dot_normal.setCornerRadius(Util.dip2px(getContext(), 4));
        dot_normal.setSize(Util.dip2px(getContext(), 8), Util.dip2px(getContext(), 8));
        return dot_normal;
    }
public class IconHintView extends ShapeHintView {

    protected Drawable makeFocusDrawable() {
        return context.getDrawable(android.R.drawable.button_onoff_indicator_on);;
    }

    protected Drawable makeNormalDrawable() {
        return context.getDrawable(android.R.drawable.button_onoff_indicator_off);;
    }

}

setAdapter()在runOnUiThread中调用时ANR

我在Activity的onCreate()中调用setAdapter()没有任何问题。但是,出于一种需求,我开启一个线程去获取新的图片,在图片获取结束后在runOnUiThread中调用setAdapter()更换成新的图片时,出现ANR,界面卡死,UI线程CPU满占用,十几秒后才恢复。即使我在getView()中返回new ImageView(container.getContext()),也是一样卡死,说明不是我在getView()中做耗时操作造成的这个ANR。望修复这个bug

==补充:broadcastreceiver的onReceive()事件中进行setAdapter()也不行

IllegalStateException错误

使用1.4.5版本
适配器:RollPagerAdapter
加载环境:网络加载图片 使用Fresco
页面中是RollPagerView下面放listView或者recycleView
启动页面时会出现IllegalStateException异常
所有数据改变位置都添加了Adapter.notifyDataSetChanged(); 依然报错
_20170105110249

只有两张图片时,初始化有问题。

如果只有两张图片的话,初始化默认会显示第二张图片,但指示器默认会显示的是第一个。也就是指示器和图片不匹配。只在初始化的时候有这个问题,轮播开始之后就正常了。

TimerTask匿名内部类 内存泄露

作者你好,很感谢分享你的项目,我在实际应用中发现,RollPagerView中startPlay()用到timer.schedule(new TimerTask() {}这里有个匿名TimerTask内部类会导致内存泄露
e3036440-e263-48ac-803d-7c5b0ac2fbb5
希望作者可以修改一下,小小建议,再次感谢

超过一条数据出现ANR 结合CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout

以下是布局

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsingToolbarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:contentScrim="@color/_ffffff_bg"
        app:expandedTitleMarginEnd="64dp"
        app:expandedTitleMarginStart="23dp"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <!--<fragment-->
        <!--android:id="@+id/cycleViewPager"-->
        <!--android:name="goujiawang.gjw.views.helpers.CycleViewPager"-->
        <!--android:layout_width="match_parent"-->
        <!--android:layout_height="@dimen/px450"-->
        <!--android:background="@drawable/cache_normal_new"-->
        <!--app:layout_collapseMode="parallax"-->
        <!--app:layout_collapseParallaxMultiplier="0.5" />-->

        <com.jude.rollviewpager.RollPagerView
            android:id="@+id/rollPagerView"
            android:layout_width="match_parent"
            android:layout_height="@dimen/px450"
            app:layout_collapseMode="parallax"
            app:layout_collapseParallaxMultiplier="0.5" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolBar"
            style="@style/ClubToolbar"
            android:layout_width="match_parent"
            android:layout_height="@dimen/px88"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay">

            <RelativeLayout
                android:id="@+id/layout_topBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_gray_alpha_gradient">

                <TextView
                    android:id="@+id/textView_left"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_centerVertical="true"
                    android:background="@drawable/selector_bg_click_color_alpha"
                    android:drawableRight="@mipmap/ic_arrow_down_white"
                    android:gravity="center"
                    android:paddingLeft="@dimen/contentPaddingLeft"
                    android:text="定位"
                    android:textColor="@color/_ffffff_word"
                    android:textSize="@dimen/sp32" />

                <TextView
                    android:id="@+id/tv_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:text="@string/gj"
                    android:textSize="@dimen/sp36" />

                <ImageView
                    android:id="@+id/imageView_right"
                    android:layout_width="@dimen/statusBarHeight"
                    android:layout_height="match_parent"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:background="@drawable/selector_bg_click_color_alpha"
                    android:contentDescription="@null"
                    android:padding="@dimen/px15"
                    android:src="@mipmap/ic_service_white" />
            </RelativeLayout>
        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.CollapsingToolbarLayout>

    <android.support.design.widget.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="@dimen/px80"
        android:background="@color/_ffffff_bg"
        app:tabIndicatorColor="@color/_ff5722"
        app:tabIndicatorHeight="@dimen/px4"
        app:tabMode="fixed"
        app:tabPaddingStart="@dimen/px20"
        app:tabSelectedTextColor="@color/_ff5722"
        app:tabTextColor="@color/_000000_word" />
</android.support.design.widget.AppBarLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager_home"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ImageView
        android:id="@+id/iv_empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="96dp"
        android:background="@mipmap/bg_empty"
        android:contentDescription="@null"
        android:visibility="gone" />
</RelativeLayout>

</android.support.design.widget.CoordinatorLayout>

代码
rollPagerView.setPlayDelay(1000);
rollPagerView.setAnimationDurtion(500);
rollPagerView.setAdapter(new TestLoopAdapter(rollPagerView));
private class TestLoopAdapter extends LoopPagerAdapter {
private List homes;
private int[] imgs = {
R.drawable.cache_normal_new,
R.drawable.cache_normal_new,
R.drawable.cache_normal_new,
R.drawable.cache_normal_new,
};

    public TestLoopAdapter(RollPagerView viewPager) {
        super(viewPager);
    }

    @Override
    public View getView(ViewGroup container, int position) {
        ImageView view = new ImageView(container.getContext());
        view.setScaleType(ImageView.ScaleType.CENTER_CROP);
        view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        view.setImageResource(imgs[position]);
        return view;
    }

    @Override
    public int getRealCount() {
        return imgs.length;
    }
}

----------------------------------------------ANR traces 文件中的一部分------
suspend all histogram: Sum: 28.329ms 99% C.I. 4us-8345.600us Avg: 191.412us Max: 10203us
DALVIK THREADS (31):
"main" prio=5 tid=1 Runnable
| group="main" sCount=0 dsCount=0 obj=0x7479a3c0 self=0xb4d36500
| sysTid=20874 nice=-1 cgrp=default sched=0/0 handle=0xb6fb8b34
| state=R schedstat=( 38664505309 1819560990 7246 ) utm=3783 stm=83 core=3 HZ=100
| stack=0xbe0f6000-0xbe0f8000 stackSize=8MB
| held mutexes= "mutator lock"(shared held)
at android.support.v4.view.PagerAdapter.getPageWidth(PagerAdapter.java:330)
at android.support.v4.view.ViewPager.calculatePageOffsets(ViewPager.java:1292)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1165)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1025)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1545)
at android.view.View.measure(View.java:18811)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.design.widget.CollapsingToolbarLayout.onMeasure(CollapsingToolbarLayout.java:373)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.support.design.widget.AppBarLayout.onMeasure(AppBarLayout.java:199)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:664)
at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:731)
at android.view.View.measure(View.java:18811)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1560)
at android.view.View.measure(View.java:18811)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18811)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5952)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
at android.view.View.measure(View.java:18811)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2120)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1236)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1472)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1127)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6038)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:860)
at android.view.Choreographer.doCallbacks(Choreographer.java:672)
at android.view.Choreographer.doFrame(Choreographer.java:608)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5438)
at java.lang.reflect.Method.invoke!(Native method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.