Android ViewPager實現選項卡切換


ViewPager實現選項卡切換,效果圖如下:

步驟一:這里使用兼容低版本的v4包進行布局,這里eclipse沒有輸入提示,所以要手動輸入,文件名稱“activity_main.xml”

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     tools:context=".MainActivity" >
 6 
 7 
 8 
 9    <android.support.v4.view.ViewPager
10         android:id="@+id/viewpager"
11         android:layout_height="wrap_content"
12         android:layout_width="wrap_content"
13         
14         >
15         <android.support.v4.view.PagerTabStrip
16             android:id="@+id/tabstrip"
17             android:layout_height="wrap_content"
18         android:layout_width="wrap_content"
19             />
20            
21     </android.support.v4.view.ViewPager>
22 </RelativeLayout>

步驟二:選項卡中的內容都是從布局文件中獲取,所以我新建兩個測試布局“layout1.xml”和“layout2.xml”,里面內容隨意。

步驟三:布局已經完成,在MainActivity.java類中,實現關鍵功能。

首先要聲明ViewPager和PagerTabStrip對象,通過findViewById分別找到資源id,聲明ArrayList<View>來存放測試布局文件,核心代碼如下:

 1 package com.example.viewpager;
 2 
 3 import java.util.ArrayList;
 4 
 5 import android.os.Bundle;
 6 import android.app.Activity;
 7 import android.graphics.Color;
 8 import android.support.v4.view.PagerAdapter;
 9 import android.support.v4.view.PagerTabStrip;
10 import android.support.v4.view.ViewPager;
11 import android.support.v4.view.ViewPager.OnPageChangeListener;
12 import android.view.Menu;
13 import android.view.View;
14 import android.view.ViewGroup;
15 import android.widget.Toast;
16 
17 public class MainActivity extends Activity implements OnPageChangeListener {
18 
19     private ViewPager viewpager;
20     private PagerTabStrip tabstrip;
21     private String[] title={"首頁","新聞","公告","圖片"};
22     private ArrayList<View> views=new ArrayList<View>();
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main);
27         viewpager=(ViewPager) findViewById(R.id.viewpager);
28         tabstrip=(PagerTabStrip) findViewById(R.id.tabstrip);
29         initial();
30         viewpager.setAdapter(new MyPagerAdapter());
31     }
32 
33     public void initial(){
34         views.add(getLayoutInflater().inflate(R.layout.layout1,null));
35         views.add(getLayoutInflater().inflate(R.layout.layout2,null));
36         views.add(getLayoutInflater().inflate(R.layout.layout1,null));
37         views.add(getLayoutInflater().inflate(R.layout.layout2,null));
38         
39         tabstrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
40         tabstrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_blue_bright));
41         tabstrip.setTextColor(Color.WHITE);
42         viewpager.setOnPageChangeListener(this);
43     }
44    class MyPagerAdapter extends PagerAdapter{
45 
46     @Override
47     public int getCount() {
48         // TODO 自動生成的方法存根
49         return views.size();
50     }
51     
52     @Override
53     public Object instantiateItem(ViewGroup container, int position) {
54         View v=views.get(position);
55         container.addView(v);
56         return v;
57     }
58 
59     @Override
60     public void destroyItem(ViewGroup container, int position, Object object) {
61         // TODO 自動生成的方法存根
62         //super.destroyItem(container, position, object);
63         container.removeView(views.get(position));
64     }
65     @Override
66     public boolean isViewFromObject(View arg0, Object arg1) {
67         // TODO 自動生成的方法存根
68         return arg0==arg1;
69     }
70     @Override
71     public CharSequence getPageTitle(int position) {
72         // TODO 自動生成的方法存根
73         return title[position];
74     }
75        
76    }
77 @Override
78 public void onPageScrollStateChanged(int arg0) {
79     // TODO 自動生成的方法存根
80     
81 }
82 
83 @Override
84 public void onPageScrolled(int arg0, float arg1, int arg2) {
85     // TODO 自動生成的方法存根
86     
87 }
88 
89 @Override
90 public void onPageSelected(int arg0) {
91     // TODO 自動生成的方法存根
92     //Toast.makeText(MainActivity.this,"新年快樂",Toast.LENGTH_SHORT).show();
93 }
94     
95 }

年后繼續更新,祝大家新年快樂。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM