【问题标题】:Android added circle indicator to viewpager [duplicate]Android向viewpager添加了圆形指示器[重复]
【发布时间】:2012-07-14 18:18:35
【问题描述】:

您好,我创建了一个视图寻呼机,但有谁知道我如何在页面视图上显示代表分页的圆圈,我认为它是一个指标,但我不完全确定?

这是迄今为止包含我的视图寻呼机的代码

public class LevelSelect extends Activity {

    private ViewPager awesomePager;
    private static int NUM_AWESOME_VIEWS = 10;
    private Context cxt;
    private AwesomePagerAdapter awesomeAdapter;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_levelselect);
        cxt = this;

        awesomeAdapter = new AwesomePagerAdapter();
        awesomePager = (ViewPager) findViewById(R.id.viewpager);
        awesomePager.setAdapter(awesomeAdapter);
    }

    private class AwesomePagerAdapter extends PagerAdapter{


        @Override
        public int getCount() {
            return NUM_AWESOME_VIEWS;
        }


        @Override
        public Object instantiateItem(View collection, int position) {

            LayoutInflater mLayoutInflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            final View LeagueButtonView = mLayoutInflater.inflate(R.layout.ls_button, null);
            Button LeagueButton = (Button) LeagueButtonView.findViewById(R.id.league);
            LeagueButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.ls_level_eng1_locked));
            ((ViewPager) collection).addView(LeagueButtonView,0);

            return LeagueButtonView;
        }


        @Override
        public void destroyItem(View collection, int position, Object view) {
            ((ViewPager) collection).removeView((View) view);
        }



        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==((View)object);
        }


        @Override
        public void finishUpdate(View arg0) {}


        @Override
        public void restoreState(Parcelable arg0, ClassLoader arg1) {}

        @Override
        public Parcelable saveState() {
            return null;
        }

        @Override
        public void startUpdate(View arg0) {}

    }

【问题讨论】:

  • 你的答案是对的here。有一个项目示例,您需要知道的所有内容。如果您仍然需要帮助,请随时寻求帮助。
  • 您可以使用 textview 创建点,并使用计时器根据 viewpager 中页面的变化突出显示相应的点,请参阅此处的完整代码codesfor.in/android-viewpager-slider-with-indicator

标签: android android-viewpager


【解决方案1】:

您可以使用 Jake Wharton 的 ViewPagerIndicator 为 ViewPager 中的每个选项卡添加标题或简单的圆圈。

Jake Wharton 在GitHub 上提供了一堆示例代码,您也可以参考Jake Wharton 网站上的usage section

也可以使用Greendroid library的ViewPager和PageIndicator

【讨论】:

  • 你从哪里得到第一张截图?你自己实现了吗?如果是这样,你有它的示例代码吗?谢谢:D
  • @KalaJ 我这是来自上面提到的the library
【解决方案2】:

拍摄两张图像(圆形或任何其他形状的图像,一张用于关闭,另一张用于打开)。采用一帧布局,在帧上显示图像(指示器)。当用户更改图像时显示正确的指示器。

我已经实现了这个并且工作正常。您可以download 代码并进行相应更改。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-11-23
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多