关注寻梦(finddreams),一起成长,一起进步: http://blog.csdn.net/finddreams/article/details/49492579
看到这个效果图,你或许会说:“一分钟做出这个,Are you kidding me?“;
什么Android编译器能够这么智能,还能一键生成Navigation Drawer 这种目前APP中用的比较广泛的导航抽屉效果呢?答案就是谷歌官方的AndroidStudio 。
要实现这个效果,首先你得是用AndroidStudio的,因为一键生成Navigation Drawer项目是AndroidStudio中的一个模板。如果是用Eclipse的朋友,想要实现这个效果,那就得手动的去码代码了。于是又发现了使用AndroidStudio的一大好处,还在用Eclipse的朋友快快适应用AndroidStudio吧?
然后AndroidStudio的版本要求是1.4以上,话说AndroidStudio真是版本更新帝,几乎是一个星期一个版本,这也说明了谷歌官方非常的重视和支持这个IDE,同时不断的频繁更新也暴露出AndroidStudio的稳定性问题。
好吧,具备了以上条件,让我们开始傻瓜式的操作吧。
1. 新建一个项目,名字随意,然后点击下一步;
2.点击选择Navigation Drawer Activity 这个模板;
3. 然后下一步,最后点击finish完成,这样导航抽屉项目就可以生成了。
最后我们来看看,生成的MainActivity 代码,感觉非常的简洁,很容易看懂。
**
* @author finddreams
* blog http://blog.csdn.net/finddreams
*/
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camera) {
// Handle the camera action
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
一分钟生成Navigation Drawer 导航抽屉效果,是不是非常的简单,赶快去试试吧!
附上源码地址:https://github.com/finddreams/AndOpenCourses