挑战练习11.6 添加Jump to First按钮和Jump to Last按钮

给CrimePagerActivity添加两个按钮。允许使用它们快速跳至第一条和最后一条crime记录。当然,要注意控制,查看第一条记录时应禁用Jump to First按钮,查看最后一条时禁用Jump to Last按钮。


1.首先修改activity_crime_pager.xml,添加两个按钮

 1 <?xml version="1.0" encoding="utf-8"?>
 2 
 3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:orientation="vertical">
 7 
 8     <android.support.v4.view.ViewPager
 9         android:id="@+id/activity_crime_pager_view_pager"
10         android:layout_width="match_parent"
11         android:layout_height="0dp"
12         android:layout_weight="1" />
13 
14     <FrameLayout
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:padding="16dp">
18 
19         <Button
20             android:id="@+id/btn_to_first"
21             android:layout_width="wrap_content"
22             android:layout_height="wrap_content"
23             android:text="to_first" />
24 
25         <Button
26             android:id="@+id/btn_to_last"
27             android:layout_width="wrap_content"
28             android:layout_height="wrap_content"
29             android:layout_gravity="end"
30             android:text="to_last" />
31     </FrameLayout>
32 </LinearLayout>

 

2.修改CrimePagerActivity,绑定两个按钮控件,并添加点击事件

 1     private Button btn_first;
 2     private Button btn_last;
 3     btn_first=(Button)findViewById(R.id.btn_to_first);
 4     btn_last=(Button)findViewById(R.id.btn_to_last);
 5     btn_first.setOnClickListener(new View.OnClickListener() {
 6             @Override
 7             public void onClick(View v) {
 8                 mViewPager.setCurrentItem(0);
 9             }
10      });
11      btn_last.setOnClickListener(new View.OnClickListener() {
12             @Override
13             public void onClick(View v) {
14                 mViewPager.setCurrentItem(mCrimes.size()-1);
15             }
16       });

 

3.然后在代码中给viewpager添加个监听器,监听它的切换,当切换到第一条或是最后一条,则隐藏跳上一页或是跳下一页的按钮

 1  mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 2             @Override
 3             public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
 4                 if(position==0){
 5                     btn_last.setVisibility(View.VISIBLE);
 6                     btn_first.setVisibility(View.INVISIBLE);
 7                 }
 8                 else if (position==mCrimes.size()-1) {
 9                     btn_last.setVisibility(View.INVISIBLE);
10                     btn_first.setVisibility(View.VISIBLE);
11                 }
12                 else {
13                     btn_last.setVisibility(View.VISIBLE);
14                     btn_first.setVisibility(View.VISIBLE);
15                 }
16             }
17 
18             @Override
19             public void onPageSelected(int position) {
20 
21             }
22 
23             @Override
24             public void onPageScrollStateChanged(int state) {
25 
26             }
27         });

 

4.运行效果:

第一条时:

 在中间时:

最后一条:

 

 


 

转载于:https://www.cnblogs.com/real1587/p/9992272.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值