21 PagerTabStrip-PagerTitleStrip-viewPager

  • PagerTabStrip:能夠點擊跳轉到對應viewPager界面
  • PagerTitleStrip:不可點擊
  • 在eclipse開發時若是目標版本爲API23那麼會有不顯示的問題java

    • 解決:更換v4包
    • 解決: 在Activiry的oncreate方法中添加以下代碼android

      ((ViewPager.LayoutParams) tabStrip.getLayoutParams()).isDecor = true;

      (我試了下個人不行但網上有說能夠)markdown

    • studio開發貌似能夠
  • 文件結構:
    這裏寫圖片描述網絡

MainActivity.javaapp

package com.qf.day21_fragmentpagertabstrip_demo2;

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

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.view.Menu;

public class MainActivity extends FragmentActivity {

    private PagerTabStrip pagerTabStrip;

    private PagerTitleStrip pagerTitleStrip;

    private ViewPager viewPager;
    private List<Fragment> list = new ArrayList<Fragment>();

    private String[] titles ={"新聞","娛樂","軍事","體育"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = (ViewPager) findViewById(R.id.viewPager);
        //pagerTabStrip = (PagerTabStrip) findViewById(R.id.pagertabStrip);

        initData();
        //setPagertabStrip();

        viewPager.setAdapter(new MyFragmentpagerAdapter(getSupportFragmentManager()));
    }

    /** * 設置書籤 */
    public void setPagertabStrip(){
        //設置文本顏色
        pagerTabStrip.setTextColor(Color.RED);
        //設置指示線顏色
        pagerTabStrip.setTabIndicatorColor(Color.BLUE);
        //設置背景顏色
        pagerTabStrip.setBackgroundColor(Color.GREEN);
        //設置是否完整繪製底線
        pagerTabStrip.setDrawFullUnderline(false);
    }

    //初始化數據源
    public void initData(){

        for(int i=0;i<4;i++){
            MyFragment myFragment = MyFragment.getInstance(i+1);
            list.add(myFragment);
        }

    }

    public class MyFragmentpagerAdapter extends FragmentPagerAdapter{

        public MyFragmentpagerAdapter(FragmentManager fm) {
            super(fm);
            // TODO Auto-generated constructor stub
        }

        @Override
        public Fragment getItem(int arg0) {
            // TODO Auto-generated method stub
            return list.get(arg0);
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }

        //設置書籤內容
        @Override
        public CharSequence getPageTitle(int position) {
            // TODO Auto-generated method stub
            return titles[position];
        }

    }


}

MyFragment.javaeclipse

package com.qf.day21_fragmentpagertabstrip_demo2;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;
import android.widget.TextView;



public class MyFragment extends ListFragment {

    private  TextView tvShow;

    private int index =0;


    public static MyFragment getInstance(int index){
        MyFragment myFragment = new MyFragment();
        Bundle args = new Bundle();
        args.putInt("index", index);
        myFragment.setArguments(args);
        return myFragment;

    }

    @Override
    public void onAttach(Activity activity) {
        // TODO Auto-generated method stub
        super.onAttach(activity);

        Bundle bundle = getArguments();
        if(bundle!=null){
            index = bundle.getInt("index");
        }
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v = inflater.inflate(R.layout.fragment_layout, container, false);

        tvShow = (TextView) v.findViewById(R.id.tv_show);
        return v;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
        switch (index) {
        case 1:
            tvShow.setText("您點擊了書籤1");

            break;
        case 2:
            tvShow.setText("您點擊了書籤2");
            break;
        case 3:
            tvShow.setText("您點擊了書籤3");
            break;
        case 4:
            tvShow.setText("您點擊了書籤4");
            break;
        default:
            break;
        }

        SimpleAdapter adapter = new SimpleAdapter(
                getActivity(), 
                loadNetWorkData(), 
                R.layout.item, 
                new String[]{"icon","title","content"}, 
                new int[]{R.id.iv_item,R.id.title_item,R.id.content_item});

        setListAdapter(adapter);

    }

    /** * 假設從網絡獲取數據 * @return */
    private List<Map<String,Object>> loadNetWorkData(){

        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
        for(int i=0;i<20;i++){
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("icon", R.drawable.ic_launcher);
            map.put("title", "郭XX大戰曹XXX"+i+"tab"+index);
            map.put("content", "降龍十八掌贏"+i+"tab"+index);
            list.add(map);

        }

        return list;

    }

    @Override
    public void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
    }

    @Override
    public void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
    }

    @Override
    public void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
    }

    @Override
    public void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
    }

    @Override
    public void onDestroyView() {
        // TODO Auto-generated method stub
        super.onDestroyView();
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
    }

    @Override
    public void onDetach() {
        // TODO Auto-generated method stub
        super.onDetach();
    }

}

activity_main.xmlide

<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" 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=".MainActivity" >

    <android.support.v4.view.ViewPager  android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" >
      <!-- <android.support.v4.view.PagerTabStrip android:id="@+id/pagertabStrip" android:layout_width="match_parent" android:layout_height="wrap_content" > </android.support.v4.view.PagerTabStrip> -->
        <android.support.v4.view.PagerTitleStrip  android:id="@+id/pagerTitleStrip" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" >

        </android.support.v4.view.PagerTitleStrip>

    </android.support.v4.view.ViewPager>

</RelativeLayout>

activity_main.xmlspa

<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" 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=".MainActivity" >

    <android.support.v4.view.ViewPager  android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" >
      <!-- <android.support.v4.view.PagerTabStrip android:id="@+id/pagertabStrip" android:layout_width="match_parent" android:layout_height="wrap_content" > </android.support.v4.view.PagerTabStrip> -->
        <android.support.v4.view.PagerTitleStrip  android:id="@+id/pagerTitleStrip" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" >

        </android.support.v4.view.PagerTitleStrip>

    </android.support.v4.view.ViewPager>

</RelativeLayout>

item.xmlcode

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" >
    <ImageView android:id="@+id/iv_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />
    <TextView android:id="@+id/title_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/iv_item" android:text="name" />
    <TextView android:id="@+id/content_item" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/iv_item" android:text="aaa" android:layout_alignBottom="@id/iv_item" />

</RelativeLayout>
相關文章
相關標籤/搜索