【问题标题】:ViewPager hide button when a specific page is displayedViewPager 在显示特定页面时隐藏按钮
【发布时间】:2013-12-16 21:22:40
【问题描述】:

嘿,当显示特定页面时,我试图在我的布局中隐藏一个按钮。我使用了以下代码,但它似乎对我不起作用。任何帮助都会得到帮助:)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.app_intro);

    mAdapter = new FragmentAdapter(getSupportFragmentManager());

    mPager = (ViewPager) findViewById(R.id.pager);
    final Button next = (Button) findViewById(R.id.intro_next);
    final Button skip = (Button) findViewById(R.id.intro_skip);

    mPager.setAdapter(mAdapter);

    mPager.setOnPageChangeListener(new OnPageChangeListener() {
        public void onPageScrollStateChanged(int state) {}
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
        public void onPageSelected(int position) {
            next.setVisibility(View.GONE);
        }
    });

    next.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mPager.setCurrentItem(mPager.getCurrentItem() + 1);
        }
    });

    skip.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mPager.setCurrentItem(5);
        }
    });

    UnderlinePageIndicator indicator = (UnderlinePageIndicator) findViewById(R.id.indicator);
    mIndicator = indicator;
    indicator.setViewPager(mPager);
    indicator.setBackgroundColor(0xFFCCCCCC);
    indicator.setFades(false);
}

【问题讨论】:

  • 什么不起作用?问题是按钮从不隐藏还是滚动到哪个页面都隐藏?
  • 抱歉,一定忘了提。按钮从不隐藏,始终可见
  • onPageSelected() 中添加一条日志语句,并告诉我们它是否被调用。

标签: android button android-viewpager hide viewpagerindicator


【解决方案1】:

感谢大家帮助我。看来我找到了自己的答案。对于未来的读者,在将 ViewPager 与 ViewPagerIndicator 一起使用时,总是将 OnPageChangeListener 设置为指示器而不是 viewpager,因为由于某种原因它不能以这种方式工作。

 indicator.setOnPageChangeListener`

代替:

 mPager.setOnPageChangeListener

【讨论】:

    【解决方案2】:

    我希望我可以对此发表评论,但 c'est la vie... 您能否更具体地说明一下这是如何不起作用的?选择任何页面时按钮是否隐藏?如果这不是您要找的东西,您需要类似的东西:

    private final int page=3;
    
    public void onPageSelected(int position){
        if(position == page){
            next.setVisibility(View.Gone);
        }
    

    【讨论】:

    • 抱歉,我的意思是在选择特定页面时不被隐藏。 span>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2019-07-25
    • 2012-05-06
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多