ViewPage第二課はViewPageにタイトルを追加します。

3453 ワード

第一課にいます
学前準備:ViewPage第一課を把握するhttp://blog.csdn.net/wei_チョングスcheng/articale/details/50468832はViePageにタイトルを追加します。PageTabStripはPageTitleStripのサブクラスPageTabStripの使用はPageTitleStripと全く同じで、効果を実現します。PageTabStripのタイトル文字はIndicatorを含みます。下の第一歩のレイアウトファイル:
 
<android.support.v4.view.PagerTabStrip
            android:layout_width="fill_parent"
            android:layout_height="50dp" >
        </android.support.v4.view.PagerTabStrip>
具体的には以下の通りです
 <android.support.v4.view.ViewPager
        android:id="@+id/vp_viewpage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/rg_tab" >

        <android.support.v4.view.PagerTabStrip
            android:layout_width="fill_parent"
            android:layout_height="50dp" >
        </android.support.v4.view.PagerTabStrip>
    </android.support.v4.view.ViewPager>
ステップ2:MainActivityに追加
prvate Listtitles;
を選択して初期化します
titles=new ArayList<String>()
titles.add(「page 01」)
titles.add(「page 02」)
titles.add(「page 03」)
titles.add(「page 04」)
内部クラスで方法を実現します。
@オーバーライド
public CharSequence getPageTitle(intposition){
//TODO Auto-generatod method stub
return titles.get(position);
)
具体的には以下の通りです
public class MainActivity extends Activity {
	private ViewPager viewpager;
	private List<View> children;

	private List<String> titles;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		viewpager = (ViewPager) findViewById(R.id.vp_viewpage);
		children = new ArrayList<View>();
		children.add(LayoutInflater.from(this).inflate(R.layout.page01, null));
		children.add(getLayoutInflater().inflate(R.layout.page02, null));
		children.add(getLayoutInflater().inflate(R.layout.page03, null));
		children.add(getLayoutInflater().inflate(R.layout.page04, null));
		titles = new ArrayList<String>();
		titles.add("page01");
		titles.add("page02");
		titles.add("page03");
		titles.add("page04");
		viewpager.setAdapter(new InnerPagerAdapter());
	}
	public class InnerPagerAdapter extends PagerAdapter{
		@Override
		public CharSequence getPageTitle(int position) {
			// TODO Auto-generated method stub
			return titles.get(position);
		}

		@Override
		public int getCount() {
			//         

			return children.size();//  viewpage          ,
		}

		@Override
		public boolean isViewFromObject(View view, Object object) {
			//     View           ViewPager      
			return view == object;
		}

		//       PageAdapter           
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			//    ViewPager      position       View  
			View view = children.get(position);
			container.addView(view);


			return view;
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			// ViewPager      position   View  
			container.removeView(children.get(position));
		}
	}

}