ViewPager動態加載佈局

第一個xml代碼:

<LinearLayout 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"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.viewpager2.MainActivity$PlaceholderFragment" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" >

        <android.support.v4.view.PagerTitleStrip
            android:id="@+id/pagerTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top" >
        </android.support.v4.view.PagerTitleStrip>
        
    </android.support.v4.view.ViewPager>

</LinearLayout>


第二個xml代碼:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <RatingBar
        android:id="@+id/ratingBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp" />

    <QuickContactBadge
        android:id="@+id/quickContactBadge1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp" />

</LinearLayout>


java代碼:

package com.example.viewpager2;

import java.util.ArrayList;
import java.util.List;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.QuickContactBadge;
import android.os.Build;

public class MainActivity extends ActionBarActivity implements OnPageChangeListener{
	private ViewPager viewPage;
	private PagerTitleStrip pagerTitle;
	List<View> list=new ArrayList<View>();
	List<String> titleList=new ArrayList<String>();
	LayoutInflater inflater=null;
	MyAdapter adapter=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.fragment_main);
		viewPage=(ViewPager) findViewById(R.id.viewPager);
		pagerTitle=(PagerTitleStrip) findViewById(R.id.pagerTitle);
		//加載動態佈局
		 inflater=LayoutInflater.from(MainActivity.this);
		View view=inflater.inflate(R.layout.tab, null);
		QuickContactBadge badgeMedium = (QuickContactBadge) view.findViewById(R.id.quickContactBadge1);
		badgeMedium.assignContactFromPhone("831-555-1212", true);
		badgeMedium.setImageResource(R.drawable.face1);
		list.add(view);
		titleList.add("tab1");
		adapter=new MyAdapter();
		viewPage.setAdapter(adapter);
		
		viewPage.setOnPageChangeListener(MainActivity.this);
	}

	public class MyAdapter extends PagerAdapter{


		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return list.size();
		}
		@Override
		public CharSequence getPageTitle(int position) {
			// TODO Auto-generated method stub
			return titleList.get(position);
		}
		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			// TODO Auto-generated method stub
			((ViewPager)container).removeView(list.get(position));
		}
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			// TODO Auto-generated method stub
			((ViewPager)container).addView(list.get(position));
			return list.get(position);
		}

		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			// TODO Auto-generated method stub
			return arg0==arg1;
		}


	}

	@Override
	public void onPageScrollStateChanged(int arg0) {
		// TODO Auto-generated method stub
		//在這裏開啓線程去下載網絡數據,更新UI操作
		Log.i("MainActivity", "--->arg0:"+arg0);
		Log.i("MainActivity", "------------------------");
		View view=inflater.inflate(R.layout.tab, null);
		list.add(view);
		titleList.add("new tab");
		//刷新數據
		adapter.notifyDataSetChanged();
		
	}
	@Override
	public void onPageScrolled(int a, float b, int c) {
		Log.i("MainActivity", "--->a:"+a);
		Log.i("MainActivity", "--->b:"+b);
		Log.i("MainActivity", "--->c:"+c);
		Log.i("MainActivity", "------------------------");
		
	}
	@Override
	public void onPageSelected(int d) {
		// TODO Auto-generated method stub
		Log.i("MainActivity", "--->d:"+d);
		Log.i("MainActivity", "------------------------");
		
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章