Android控制項:高仿微信主UI,android高仿微

來源:互聯網
上載者:User

Android控制項:高仿主UI,android高仿微
高仿主UI

之前在Android組件:Fragment切換後儲存狀態 一文中講到了Fragment切換後,是如何儲存原來的狀態的,最重要的就是用add方法取代現在各種教程常見的replace方法。然而我發現有不少App都貌似採用ViewPager + Fragment來做主UI的。於是在Android組件:Fragment切換後儲存狀態 的基礎上加入了ViewPager,看了下介面,要高仿就儘力模仿到最像,所以也把ActionBar也修改成的樣子。

先上一張:

布局

我知道這個主UI肯定沒我想得那麼簡單,而實現上面這個效果用了四個主要的元素。

1.ActionBar

這一塊還是蠻簡單的,就是在res/menu,寫一個menu.xml檔案就OK了。需要注意的是:如果手機又實體菜單按鍵的,最常見就是三星啦,可以調用一個方法來讓Menu顯示在ActionBar上。

    private void getOverflowMenu() {        try {            ViewConfiguration config = ViewConfiguration.get(this);            Field menuKeyField = ViewConfiguration.class                    .getDeclaredField("sHasPermanentMenuKey");            if (menuKeyField != null) {                menuKeyField.setAccessible(true);                menuKeyField.setBoolean(config, false);            }        } catch (Exception e) {            e.printStackTrace();        }    }

另外也要注意一下版本之間的問題,例如高版本的Activity就不必繼承ActionBarActivity了。

2.Fragment

這一塊視乎不是重點,大家如果不熟悉Fragment可以參考我之前寫的兩篇關於Fragment的文章 - -

3.ViewPager

我們知道ViewPager的使用步驟是:

但是,我們要載入的是Fragment,這該怎麼辦呢?其實更加簡單,我們只需要把Adapter改為繼承FragmentPagerAdapter 就可以了

    private class MyPagerAdapter extends FragmentPagerAdapter {        public MyPagerAdapter(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();        }    }

其中的List元素,由View變成了Fragment..

4.Button

這個Button的使用比第一篇還要簡單,因為我們只需要這樣就可以了:

    public void onClick(View arg0) {        switch (arg0.getId()) {        ...        case R.id.tongxunlu_layout:            viewPager.setCurrentItem(1, true);            break;        ...        }    }
總結

FragmentPagerAdapter 貌似不能起到切換後自動儲存狀態的作用,但可以在Fragment裡面來操作,來達到這個功能吧。

CSDN下載源碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.