1. 程式人生 > >Android 介面優化二:介面滑動

Android 介面優化二:介面滑動

今天想在介面加入一個滑動的功能,看起來比較炫,也沒什麼實用性,單純的好看而已。

使用了ViewPager方法;下面貼程式碼:

首先在主介面裡面建立:(注意,一般只能用在常見佈局下面,一些特殊的佈局下面或者包佈局還是無法實現此功能的)

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

然後在後臺程式碼onCreate中新增以下程式碼:

viewPager = (ViewPager)findViewById(R.id.viewpager);
LayoutInflater inflater = getLayoutInflater().from(Main.this);
statioManage = inflater.inflate(R.layout.station_manage,null);
histRecord = inflater.inflate(R.layout.hist_record,null);
user = inflater.inflate(R.layout.user,null);

viewList = new ArrayList<View>();
viewList.add(statioManage);
viewList.add(histRecord);
viewList.add(user);
//引用介面卡
PagerAdapter pagerAdapter = new PagerAdapter(viewList);
viewPager.setAdapter(pagerAdapter);

PagerAdapter是一個我在網上找到的一個配置器,忘了在哪篇文章裡找的了,若看到請聯絡我,下面把這個介面卡程式碼如下:

public class PagerAdapter extends PagerAdapter {
    public List<View> viewList;

    public PagerAdapter(List<View> viewList) {
        this.viewList = viewList;
    }

    /*下面四個函式是一定要重寫的*/
    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        //判斷instantiateItem(ViewGroup, int)函式所返回來的Key與一個頁面檢視是否是代表的同一個檢視(判斷key)
        // TODO Auto-generated method stub
        return arg0 == arg1;
    }

    @Override
    public int getCount() {//返回要滑動的VIew的個數
        // TODO Auto-generated method stub
        return viewList.size();
    }

    @Override
    public void destroyItem(ViewGroup container, int position,
                            Object object) {//從當前container中刪除指定位置(position)的View;
        // TODO Auto-generated method stub
        container.removeView(viewList.get(position));
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        //例項化:將當前檢視新增到container中,並返回當前View(傳送key)
        // TODO Auto-generated method stub
        container.addView(viewList.get(position));

        return viewList.get(position);
    }
}

寫上基本就可以用了,有關事項也寫清了,有問題請留言。