編輯:關於Android編程
DrawerLayout已經出來很久了,個人覺得國內的app都深受ios的毒害在設計上都爭先模仿ios的風格,都忘了什麼是獨特的Android風格,自己得先學的然後跟產品爭取在項目中使用上一系列的Android風格,碰巧DrawerLayout菜單導航被我爭取到了,用到了項目上。
首先 DrawerLayout存在於v4包中,我們只需要在xml配置即可
在這需要介紹下ActionBarDrawerToggle,控制DrawerLayout的顯示/隱藏使用。
在Activity中的兩個回調函數中使用它:
onConfigurationChanged
onOptionsItemSelected
調用ActionBarDrawerToggle.syncState() 在Activity的onPostCreate()中;指示,ActionBarDrawerToggle與DrawerLayout的狀態同步,並將ActionBarDrawerToggle中的drawer圖標,設置為ActionBar的Home-Button的icon
public class DrawerActivity extends AppCompatActivity {
DrawerLayout mDrawerLayout;
ActionBarDrawerToggle toggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_activity);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
toggle = new ActionBarDrawerToggle(DrawerActivity.this, mDrawerLayout, R.string.hello_world, R.string.hello_world);
mDrawerLayout.setDrawerListener(toggle);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle(TestDrawerLayout);
}
@Override
public void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
toggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
toggle.onConfigurationChanged(newConfig);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (toggle.onOptionsItemSelected(item))
return true;
return super.onOptionsItemSelected(item);
}
}
以上幾步設置即可在項目中成功使用DrawerLayout,但是需要注意幾點:
1.android.support.v4.widget.DrawerLayout是存在於v4包下
2.主題需要顯示ActionBar,例如Theme.AppCompat.Light.DarkActionBar
3.ActionBarDrawerToggle是個DrawerListener實現,我們可以自己寫DrawerListener實現特定的要求。
我們可以發現獨具自帶的Android的風格我們使用起來也是很容易,而我們卻深受ios的影響太多了。
屬性動畫簡介Android開發過程中,適當的使用一些動畫可以讓自己的應用看起來更棒更炫。最初的時候Google為了實現動畫,主要提供了兩種基本動畫:幀動畫:將一個完整的動
1.問題是如何發生的,會在什麼情況下發生此類問題?當用戶運用手機清理助手或後台回收我們的應用造成我們應用程序進程被殺死的時候就有可能出現這種空指針的問題,下面舉個例子我們
由於gif圖太大的原因,我將圖放在了github,如果博客中顯示不出來圖,傳送門 由於我是事先寫在md上的,導致代碼的可讀性差,大家將就著看吧。 1. 前言 在
為了第六篇的完整性,這裡先貼出原文,下次再來翻譯;:p 原文地址:http://developer.android.com/training/basics/acti