• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>

    顯示效果:



    實(shí)現(xiàn)過程:
    1.創(chuàng)建3個選項卡中的內(nèi)容,即三個Fragment。
    這里僅貼出其中一個:
    Tab2:

    package com.example.viewpagerdemo3;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class Tab2 extends Fragment
    {
        private Button but = null;
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState)
        {
            View view = inflater.inflate(R.layout.tab2,null);//注意不要指定父視圖
            but = (Button) view.findViewById(R.id.but);
            return view;
        }
        @Override
        public void onActivityCreated(Bundle savedInstanceState)
        {
            super.onActivityCreated(savedInstanceState);
            but.setOnClickListener(new OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    Toast.makeText(Tab2.this.getActivity(),"hahah", 0).show();
                }
            });
        }
    }

    布局:


    
    
        
        

    剩下兩個Fragment類似。
    2.主界面布局

    
        
            
            
            
        
        
        
    

    三個TextView代表選項卡標(biāo)題,ImageView代表選項卡下的下劃線。
    3.實(shí)現(xiàn)activity。

    package com.example.viewpagerdemo3;
    
    import android.graphics.BitmapFactory;
    import android.graphics.Color;
    import android.graphics.Matrix;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v4.view.ViewPager.OnPageChangeListener;
    import android.util.DisplayMetrics;
    import android.view.animation.Animation;
    import android.view.animation.TranslateAnimation;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    public class MainActivity extends FragmentActivity
    {
        private ViewPager vPager = null;
        /**
         * 代表選項卡下的下劃線的imageview
         */
        private ImageView cursor = null;
        /**
         * 選項卡下劃線長度
         */
        private static int lineWidth = 0;
        
        /**
         * 偏移量
         *         (手機(jī)屏幕寬度/3-選項卡長度)/2
         */
        private static int offset = 0;
        
        /**
         * 選項卡總數(shù)
         */
        private static final int TAB_COUNT = 3;
        /**
         * 當(dāng)前顯示的選項卡位置
         */
        private int current_index = 0;
        
        /**
         * 選項卡標(biāo)題
         */
        private TextView text1,text2,text3;
        
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            vPager = (ViewPager) findViewById(R.id.vPager);
            
            initImageView();
            text1 = (TextView) findViewById(R.id.text1);
            text2 = (TextView) findViewById(R.id.text2);
            text3 = (TextView) findViewById(R.id.text3);
            final TextView[] titles = {text1,text2,text3};
            vPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager())
            {
                @Override
                public int getCount()
                {
                    return TAB_COUNT;
                }
                
                @Override
                public Fragment getItem(int index)//直接創(chuàng)建fragment對象并返回
                {
                    switch (index)
                    {
                    case 0:
                        return new Tab1();
                    case 1:
                        return new Tab2();
                    case 2:
                        return new Tab3();
                    }
                    return null;
                }
            });
            vPager.setOnPageChangeListener(new OnPageChangeListener()
            {
                int one = offset * 2 + lineWidth;// 頁卡1 -> 頁卡2 偏移量
                @Override
                public void onPageSelected(int index)//設(shè)置標(biāo)題的顏sè以及下劃線的移動效果
                {
                    Animation animation = new TranslateAnimation(one*current_index,one*index, 0,0);
                    animation.setFillAfter(true);
                    animation.setDuration(300);
                    cursor.startAnimation(animation);
                    titles[current_index].setTextColor(Color.BLACK);
                    titles[index].setTextColor(Color.RED);
                    current_index = index;
                }
                
                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2)
                {
                }
                
                @Override
                public void onPageScrollStateChanged(int index)
                {
                }
            });
        }
        private void initImageView()
        {
            cursor = (ImageView) findViewById(R.id.cursor);
            //獲取圖片寬度
            lineWidth = BitmapFactory.decodeResource(getResources(),R.drawable.line).getWidth();
            DisplayMetrics dm = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);
            //獲取屏幕寬度
            int screenWidth = dm.widthPixels;
            Matrix matrix = new Matrix();
            offset = (int) ((screenWidth/(float)TAB_COUNT - lineWidth)/2);
            matrix.postTranslate(offset, 0);
            //設(shè)置初始位置
            cursor.setImageMatrix(matrix);
        }
    }

    穩(wěn)定

    產(chǎn)品高可用性高并發(fā)

    貼心

    項目群及時溝通

    專業(yè)

    產(chǎn)品經(jīng)理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽(yù)

    堅持

    10年專注高端品質(zhì)開發(fā)
    • 返回頂部
    日韩av无码久久精品免费| 久久精品无码一区二区日韩AV| 亚洲国产精品无码久久一区二区| 精品国产一级在线观看| 精品香蕉伊思人在线观看| 无码日韩人妻精品久久蜜桃| 国产精品电影一区二区三区| 国产亚洲精品AAAA片APP| 国产成人综合久久精品红| 精品久久无码中文字幕| 久久99精品久久久久久hb无码| 亚洲第一精品在线视频| 久久久91精品国产一区二区三区| 国产亚洲精品自在线观看| 精品人妻系列无码人妻免费视频| 亚洲精品成人久久久| 国产成人精品cao在线| 色哟哟国产精品免费观看| 日韩精品无码Av一区二区| 日韩精品亚洲专区在线影视| 欧美日韩久久久精品A片| 日韩精品一区二区三区中文| 午夜精品久久久久久久99热| 国产精品一区电影| 国产精品东北一极毛片| 国产精品91在线播放| 国产成人精品无码一区二区老年人| 国产精品99久久免费| 国产亚洲精品91| 日韩精品无码一区二区三区免费| 日韩免费无码视频一区二区三区| 日韩免费电影网站| 日韩丰满少妇无码内射| 日韩不卡中文字幕| 一本一道久久a久久精品综合| 亚洲精品国产成人影院| 精品日韩在线视频一区二区三区 | 亚洲国产人成精品| 国产福利精品视频自拍 | 亚洲国产精品日韩专区AV| 日韩电影免费在线观看|