使用AndroidStudio一分钟实现Navigation Drawer 导航抽屉效果

版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams https://blog.csdn.net/finddreams/article/details/49492579

     关注寻梦(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
  
  

猜你喜欢

转载自blog.csdn.net/finddreams/article/details/49492579