android - 如何在首尾页分别隐藏前进和后退键?
怪我咯
怪我咯 2017-04-17 11:29:31
[Android讨论组]

以下是我用来启动Circlepageindicator的MainActivity,

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.Window;
import android.widget.Button;

public class MainActivity extends FragmentActivity {
ViewPager pager;
Button prev,next;
@Override
protected void onCreate(Bundle savedInstanceState) {
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     MyPagerAdapter adapter=new MyPagerAdapter();
     pager = (ViewPager)findViewById(R.id.view_pager);
     pager.setAdapter(adapter);     
     pager.setCurrentItem(0);

     //Bind the title indicator to the adapter
     CirclePageIndicator titleIndicator = (CirclePageIndicator)findViewById(R.id.titles);
     titleIndicator.setViewPager(pager);


     prev = (Button) findViewById(R.id.prev);   
     prev.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Do something in response to button click
                pager.setCurrentItem(pager.getCurrentItem() - 1);

            }
        });

     next = (Button) findViewById(R.id.next);
     next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Do something in response to button click
                pager.setCurrentItem(pager.getCurrentItem() + 1);

            }
        });

}

@Override
public void onBackPressed() {
    if (pager.getCurrentItem() == 0) {
        // If the user is currently looking at the first step, allow the system to handle the
        // Back button. This calls finish() on this activity and pops the back stack.
        super.onBackPressed();
    } else {
        // Otherwise, select the previous step.
        pager.setCurrentItem(pager.getCurrentItem() - 1);
    }
}

}

在Circlepageindicator中,前进(previous)和后退(next)键都可以正常使用,但我想在第一个fragment中隐藏后退键,在最后一个fragment中隐藏前进键,具体应该如何操作呢?

原文:How to hide previous button on first fragment and next button on last fragment in viewpager?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
PHP中文网

答:Aditya Kamath
你可以在ViewPager pager.setOnPageChangeListener中,启用OnPageChangeListener的onPageScrolled方法,实现这种效果:

class PagerChangeListener implements OnPageChangeListener {
    @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                IciciLogger.info(classname, "onPageScrolled");
                pageSelected = arg0;

                switch (pageSelected) {
                case 0: {

                    preButton.setVisibility(View.INVISIBLE);
                }

                    break;

                case 2: {

                    nexButton.setVisibility(View.INVISIBLE);
                }

                    break;

                default: {
                    nexButton.setVisibility(View.VISIBLE);
                    preButton.setVisibility(View.VISIBLE);
                }
                    break;
                }

            }
}

答:Ganesh Katikar
这段代码和简单,我希望能对你有所帮助,只要编写:

// For previous button
 if(pager.getCurrentItem() == 0)
{
previousBtn.setVisibility(View.GONE);
}

// For Next Button
  if(pager.getCurrentItem() == YOUR LAST ITEM INDEX)
      {
      nextBtn.setVisibility(View.GONE);
      }

即可实现上述效果。
更多详情可以登录:
http://dwij.co.in/greendroid-library-implementation-in-android-project/

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号