中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Android ViewPager循環(huán)左右自動滑動加載Page

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
    package zhangphil.auto_viewpager;  
      
    import java.util.ArrayList;  
    import android.support.v4.app.Fragment;  
    import android.support.v4.app.FragmentManager;  
    import android.support.v4.app.FragmentPagerAdapter;  
    import android.support.v4.view.ViewPager;  
    import android.support.v7.app.ActionBarActivity;  
    import android.view.Gravity;  
    import android.view.LayoutInflater;  
    import android.view.View;  
    import android.view.ViewGroup;  
    import android.widget.TextView;  
    import android.graphics.Color;  
    import android.os.Bundle;  
    import android.os.Handler;  
    import android.os.Message;  
    import android.os.SystemClock;  
      
    /** 
     * Android ViewPager循環(huán)左右自動滑動加載Page。 
     *   
     * 核心關(guān)鍵:使用 ViewPager的setCurrentItem(int index)左右自動循環(huán)加載。 
     * 思路:使用Android Handler,在Handler的handleMessage(Message msg)中收消息,收到消息就從msg中解析出需要加載的索引。 
     * 相應(yīng)的,開辟一個線程,時隔兩秒就用Handler發(fā)一個Message,觸發(fā)Handler的handleMessage,從而調(diào)用ViewPager的setCurrentItem操作. 
     */  
      
    public class MainActivity extends ActionBarActivity {  
      
        private ViewPager mViewPager;  
      
        private final static String ID = "id";  
        private ArrayList<Fragment> mArrayList;  
      
        // 用以顯示的Fragment總數(shù),假設(shè)有5個.  
        private final int SIZE = 5;  
      
        private Handler handler;  
        private final int WHAT = 0xf01;  
      
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
      
            mArrayList = new ArrayList<Fragment>();  
            for (int i = 0; i < SIZE; i++) {  
                Fragment f = new TestFragment();  
                Bundle b = new Bundle();  
                b.putInt(ID, i);  
                f.setArguments(b);  
                mArrayList.add(f);  
            }  
      
            mViewPager = (ViewPager) findViewById(R.id.viewpager);  
            FragmentPagerAdapter mPagerAdapter = new MyFragmentPagerAdapter(  
                    getSupportFragmentManager());  
            mViewPager.setAdapter(mPagerAdapter);  
      
            handler = new Handler() {  
                @Override  
                public void handleMessage(Message msg) {  
                    switch (msg.what) {  
                    case WHAT:  
                        int index = (Integer) msg.obj;  
                        mViewPager.setCurrentItem(index);  
                        break;  
                    }  
                }  
            };  
      
            new Thread(new Runnable() {  
      
                @Override  
                public void run() {  
      
                    int i = 0;  
                    while (true) {  
                        // 當超過SIZE后,回繞,從頭開始循環(huán)。  
                        i = i % SIZE;  
      
                        Message message = new Message();  
                        message.what = WHAT;  
                        message.obj = i;  
                        handler.sendMessage(message);  
      
                        // 休息兩秒。  
                        SystemClock.sleep(2000);  
      
                        i++;  
                    }  
                }  
            }).start();  
        }  
      
        private class MyFragmentPagerAdapter extends FragmentPagerAdapter {  
      
            public MyFragmentPagerAdapter(FragmentManager fm) {  
                super(fm);  
            }  
      
            @Override  
            public Fragment getItem(int pos) {  
                return mArrayList.get(pos);  
            }  
      
            @Override  
            public int getCount() {  
                return mArrayList.size();  
            }  
        }  
      
        // 測試的Fragmnt,只顯示一個Id,用于區(qū)別不同的Fragment。  
        public static class TestFragment extends Fragment {  
      
            private int Id;  
      
            @Override  
            public void onCreate(Bundle savedInstanceState) {  
                super.onCreate(savedInstanceState);  
      
                Bundle b = this.getArguments();  
                Id = b.getInt(ID);  
            }  
      
            @Override  
            public View onCreateView(LayoutInflater inflater, ViewGroup container,  
                    Bundle savedInstanceState) {  
      
                TextView tv = new TextView(getActivity());  
                String str = "id: " + Id;  
                tv.setTextColor(Color.LTGRAY);  
                tv.setText(str);  
                tv.setTextSize(50);  
                tv.setGravity(Gravity.CENTER);  
      
                return tv;  
            }  
        }  
    }  

activity_main.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" >  
      
        <FrameLayout  
            android:layout_width="match_parent"  
            android:layout_height="match_parent"  
            android:layout_weight="1" >  
      
            <android.support.v4.view.ViewPager  
                android:id="@+id/viewpager"  
                android:layout_width="match_parent"  
                android:layout_height="match_parent" />  
        </FrameLayout>  
      
      
    </LinearLayout>  

標簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:html5 web worker實現(xiàn)異步執(zhí)行 計數(shù)器

下一篇:JavaScript實現(xiàn)星級評分