Android ViewPager實現選項卡切換
本文實例介紹了ViewPager實現選項卡切換,效果圖如下:
步驟一:這里使用兼容低版本的v4包進行布局,這里eclipse沒有輸入提示,所以要手動輸入,文件名稱“activity_main.xml”
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_height="wrap_content" android:layout_width="wrap_content" > <android.support.v4.view.PagerTabStrip android:id="@+id/tabstrip" android:layout_height="wrap_content" android:layout_width="wrap_content" /> </android.support.v4.view.ViewPager> </RelativeLayout>
步驟二:選項卡中的內容都是從布局文件中獲取,所以我新建兩個測試布局“l(fā)ayout1.xml”和“l(fā)ayout2.xml”,里面內容隨意。
步驟三:布局已經完成,在MainActivity.java類中,實現關鍵功能。
首先要聲明ViewPager和PagerTabStrip對象,通過findViewById分別找到資源id,聲明ArrayList<View>來存放測試布局文件,核心代碼如下:
package com.example.viewpager; import java.util.ArrayList; import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerTabStrip; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; public class MainActivity extends Activity implements OnPageChangeListener { private ViewPager viewpager; private PagerTabStrip tabstrip; private String[] title={"首頁","新聞","公告","圖片"}; private ArrayList<View> views=new ArrayList<View>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewpager=(ViewPager) findViewById(R.id.viewpager); tabstrip=(PagerTabStrip) findViewById(R.id.tabstrip); initial(); viewpager.setAdapter(new MyPagerAdapter()); } public void initial(){ views.add(getLayoutInflater().inflate(R.layout.layout1,null)); views.add(getLayoutInflater().inflate(R.layout.layout2,null)); views.add(getLayoutInflater().inflate(R.layout.layout1,null)); views.add(getLayoutInflater().inflate(R.layout.layout2,null)); tabstrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light)); tabstrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_blue_bright)); tabstrip.setTextColor(Color.WHITE); viewpager.setOnPageChangeListener(this); } class MyPagerAdapter extends PagerAdapter{ @Override public int getCount() { // TODO 自動生成的方法存根 return views.size(); } @Override public Object instantiateItem(ViewGroup container, int position) { View v=views.get(position); container.addView(v); return v; } @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO 自動生成的方法存根 //super.destroyItem(container, position, object); container.removeView(views.get(position)); } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO 自動生成的方法存根 return arg0==arg1; } @Override public CharSequence getPageTitle(int position) { // TODO 自動生成的方法存根 return title[position]; } } @Override public void onPageScrollStateChanged(int arg0) { // TODO 自動生成的方法存根 } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO 自動生成的方法存根 } @Override public void onPageSelected(int arg0) { // TODO 自動生成的方法存根 //Toast.makeText(MainActivity.this,"新年快樂",Toast.LENGTH_SHORT).show(); } }
以上就是本文的全部內容,還有一些問題會在之后的文章中繼續(xù)學習,希望大家繼續(xù)關注。
相關文章
Android消息通知Notification常用方法(發(fā)送消息和接收消息)
最近在做消息通知類Notification的相關業(yè)務,利用閑暇時間總結一下,主要分為兩部分來記錄:發(fā)送消息和接收消息,對Android消息通知相關知識感興趣的朋友一起看看吧2024-02-02JSON中optString和getString方法的區(qū)別
optString方法會在對應的key中的值不存在的時候返回一個空字符串,但是getString會拋一個JSONException 。下面通過一段代碼給大家介紹JSON中optString和getString方法的區(qū)別,感興趣的朋友一起看看吧2017-07-07Android中BroadcastReceiver(異步接收廣播Intent)的使用
Broadcast Receiver是Android的五大組件之一,使用頻率也很高,用于異步接收廣播Intent,本文將詳細介紹,需要的朋友可以參考下2012-12-12