MainActivity代码
package com.zzz.drawerlayout;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.navigation.NavigationView;
import com.google.android.material.snackbar.Snackbar;
public class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
NavigationView navView = (NavigationView) findViewById(R.id.nav_view);
//将Call菜单项设置为默认选中
navView.setCheckedItem(R.id.nav_call);
//用户点击任意菜单项时,将滑动菜单关闭
navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
mDrawerLayout.closeDrawers();
return true;
}
});
//获取ActionBar的实例
ActionBar actionBar = getSupportActionBar();
//虽然这个ActionBar的具体实现是Toolbar来完成的
if(actionBar!=null){
//让导航按钮显示出来
actionBar.setDisplayHomeAsUpEnabled(true);
//设置一个导航按钮的图标
//实际上,Toolbar最左侧的按钮就叫HomeAsUp
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
}
//悬浮按钮
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//普通的Toast方式
//Toast.makeText(MainActivity.this,"FAB Clicked",Toast.LENGTH_SHORT).show();
//Snackbar方式
//第一个参数View,只要是当前界面布局的任意一个View就行,SnackBar会使用这个View来自动查找最外层的布局
//第二个参数是Snackbar要显示的内容
//第三个参数是Snackbar显示的时长
Snackbar.make(v,"data delete",Snackbar.LENGTH_SHORT)
.setAction("Undo", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"data restored",
Toast.LENGTH_SHORT).show();
}
})
.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.backup:
Toast.makeText(this, "You clicked Backup", Toast.LENGTH_SHORT).show();
break;
case R.id.delete:
Toast.makeText(this, "You clicked Delete", Toast.LENGTH_SHORT).show();
break;
case R.id.settings:
Toast.makeText(this, "You clicked Settings", Toast.LENGTH_SHORT).show();
break;
//实际上,Toolbar最左侧的按钮就叫HomeAsUp
//HomeAsUp按钮的id永远是android.R.id.home
case android.R.id.home:
mDrawerLayout.openDrawer(GravityCompat.START);
default:
}
return true;
}
}