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