iT邦幫忙

DAY 4
0

菜逼八的 Android 開發 30天系列 第 4

【菜逼八學Android】像抽屜一樣,可以開關的MENU,Navigation Drawer(4)

  • 分享至 

  • xImage
  •  

各位觀眾捧油打ㄍㄟ賀,很高興來到了第四天的鐵人賽,
今天是六日深怕自己會熊熊忘記要來寫文,所以趕快打開電腦來發表今天的文章。
先講一下參賽到第四天的一些心得好了,本魯平常是沒有在打文章的,
因為同事找我來,我才在這裡第一次寫關於程式的文章,花現發現這樣進步的效率很高,
平常看別人的實作,可能只是快速瀏覽過,而寫文章,為了要讓其他人明白自己在寫什麼,
必須花更多雙倍的努力來研究,分享文章也讓許多不懂的人受益,
深深覺得每個樂於分享的捧油都相當偉大(更不用說那些長期在分享文章的前輩們了)
看到自己不懂的技術,也會想要深入了解,覺得這樣互相激勵成長的過程讓人很感動!
而我分享這些我覺得,最後也敬祝各位鐵人賽順利~

--------我是結束廢話的分隔線--------

Step5. 點選App Icon 開關抽屜

昨天只做了左右滑動可以開關抽屜的功能,但是左上方的App Icon按下去是沒有反應的,
我們可以用昨天使用的ActionBarDrawerToggle來達到這個目的。
為了要讓使用者知道ActionBar裡面是有抽屜的,我們要在上面加上一個返回圖示。

長的像三條槓的東東,按下去就會開啟抽屜(如下圖)

引用昨天的程式碼,我們只要加一點點的變化就可以囉!

public class MainActivity extends Activity {
    private DrawerLayout mDrawerLayout;
    private ActionBarDrawerToggle mDrawerToggle;
    ...

    public void onCreate(Bundle savedInstanceState) {
        ...

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerToggle = new ActionBarDrawerToggle(
                this,                  
                mDrawerLayout,        
                R.drawable.ic_drawer, 
                R.string.drawer_open,  
                R.string.drawer_close  
                ) {

            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
                getActionBar().setTitle(mTitle);
            }

            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                getActionBar().setTitle(mDrawerTitle);
            }
        };

        mDrawerLayout.setDrawerListener(mDrawerToggle);

    //以上是昨天的程式碼不變
        getActionBar().setDisplayHomeAsUpEnabled(true); //讓左上角的App Icon的左邊加上一個返回的圖示
        getActionBar().setHomeButtonEnabled(true); //讓左上角的App Icon顯示
    }

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
    // 在發生onRestoreInstanceState之後同步切換狀態
        mDrawerToggle.syncState();
    }

    //系統設定改變時觸發
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        mDrawerToggle.onConfigurationChanged(newConfig);
    }

    //按下任意ActionBar選單時觸發
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // 如果ActionBarDrawerToggle的onOptionItemSelected回傳true,
    // 則處理App Icon 點擊事件
        if (mDrawerToggle.onOptionsItemSelected(item)) {
          return true;
        }
        return super.onOptionsItemSelected(item);
    }

    ...
}

那我們的抽屜實作差不多就到這邊完成~謝謝大家的閱讀!


上一篇
【菜逼八學Android】像抽屜一樣,可以開關的MENU,Navigation Drawer(3)
下一篇
【菜逼八學Android】可浮在Activity之上的DialogFragment(1)
系列文
菜逼八的 Android 開發 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言