【问题标题】:Pagination with dots (on Lollipop) : ViewPagerIndicator vs PagerSlidingTabStrip点分页(在棒棒糖上):ViewPagerIndicator vs PagerSlidingTabStrip
【发布时间】:2015-01-16 14:52:09
【问题描述】:

两者都有很多来源和示例。我需要一个以点为指示器的寻呼机,并且我正在使用 Android 5.0 上的新 Studio。

第一眼;

  • PagerSlidingTabStrip 看起来更新,我设法将它作为 gradle 项目和测试。

  • ViewPagerIndicator appstore 上的示例应用程序可能会被删除。全部
    帖子中的链接似乎已损坏。而且我无法导入为
    Gradle 项目也是。

我倾向于使用PagerSlidingTabStrip,但我不确定是否可以使用“PagerSlidingTabStrip”轻松配置带有小点的分页,据我所知,它主要是为带有标题的标签设计的。

【问题讨论】:

    标签: android android-5.0-lollipop viewpagerindicator pagerslidingtabstrip


    【解决方案1】:

    这很容易自己解决,这里有一个示例。

    在您的 ViewPager 下方添加一个 LinearLayout(@+id/indContainer),然后使用此代码设置点:

    LinearLayout indContainer = (LinearLayout) findViewById(R.id.indicator_container);
        for(int x=0;x<yourData.size();x++){
            ImageView v = new ImageView(this);
            int px = (int)(4 * (getResources().getDisplayMetrics().densityDpi / 160));
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayoutCompat.LayoutParams.WRAP_CONTENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT);
            params.setMargins(px,0,px,0);
            v.setLayoutParams(params);
            v.setImageResource(R.drawable.indicator_inactive);
            indContainer.addView(v);
        }
    

    然后在你的 pageChangeListener 中:

    LinearLayout indContainer = (LinearLayout) findViewById(R.id.indicator_container);
    ((ImageView) indContainer.getChildAt(position)).setImageResource(R.drawable.indicator_active);
    ((ImageView) indContainer.getChildAt(lastPage)).setImageResource(R.drawable.indicator_inactive);
    lastPage = position;
    

    根据需要调整指示器图标和大小

    【讨论】:

    • 嗨,这是使用ViewPagerIndicator 还是PagerSlidingTabStrip?
    • 也不是,这只是使用自定义视图
    • 完美运行!谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 2016-05-02
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 2016-02-28
    相关资源
    最近更新 更多