Android中的 Material Design

1. 为什么有 Material Design?

     安卓标准的界面设计风格没有IOS美观,而且Android平台界面风格不统一。Material Design在2014年推出,解决美观与Android界面风格不统一问题。

2.Toolbar代替ActionBar,更加灵活

     更改application的主题:

     res-->values-->styles

      修改activity_main.xml中代码,加入Toolbar:

     修改MainActivity中代码:

 

 3. 滑动菜单DrawerLayout(里面有两部分,一部分为主屏幕,一部分为隐藏的菜单)

 4. 导航视图NavigationView(美化滑动菜单DrawerLayout)

     加入build闭包:

     准备一:创建nav_menu.xml:

     准备二:创建nav_header.xml:

     修改主布局文件:

 修改MainActivity文件:

public class MainActivity extends AppCompatActivity {
    private DrawerLayout mDrawerLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar=findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);//设置标题栏
        mDrawerLayout=findViewById(R.id.drawer_layout);
        NavigationView navigationView=findViewById(R.id.nav_view);
        ActionBar actionBar=getSupportActionBar();//获取标题栏
        if (actionBar!=null){
            actionBar.setDisplayHomeAsUpEnabled(true);//显示导航按钮
            actionBar.setHomeAsUpIndicator(R.mipmap.ic_launcher);//设置导航按钮图标(Indicator指示器)
        }

        navigationView.setCheckedItem(R.id.inform);//默认选中
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {//监听
                mDrawerLayout.closeDrawers();//关闭导航抽屉
                return true;
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {//创建选项菜单,在右上角
        getMenuInflater().inflate(R.menu.toolbar,menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case android.R.id.home:
                mDrawerLayout.openDrawer(GravityCompat.START);//将滑动菜单展示出来
                break;
            case R.id.duty:
                Toast.makeText(this,"you clicked duty",Toast.LENGTH_SHORT).show();
                break;
            case R.id.more:
                Toast.makeText(this,"you clicked more",Toast.LENGTH_SHORT).show();
                break;
            case R.id.settings:
                Toast.makeText(this,"you clicked settings",Toast.LENGTH_SHORT).show();
                break;
            default:
        }
        return true;
    }
}

5. 结果大致界面:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值