Android(安卓)左侧抽屉 +点击事件
16lz
2021-01-25
首先导入 implementation 'com.android.support:design:28.0.0' implementation 'de.hdodenhof:circleimageview:2.1.0'
第一个是抽屉,第二个是圆形图片
创建nav_header.xml
这个作为抽屉的上部分
<?xml version="1.0" encoding="utf-8"?>
新建menu文件夹,在该文件夹下,创建 nav_menu.xml 作为抽屉的下部分。
创建activity_main.xml
NavigationView一定要放在所有控件的最下面,否则点击事件可能会被屏蔽掉
<?xml version="1.0" encoding="utf-8"?>
给抽屉加了名字:drawerlayout,java绑定时有用,一般情况下抽屉不显示出来。加了一个圆形图片,点击图片后可抽出抽屉
app:menu="@menu/nav_menu"这句是通过xml文件把nav_menu加入到抽屉的下半部分。
上半部分的nav_header用的是java文件加入到抽屉的上半部分
MainActivity.java
package cn.edu.neusfoft.notes_drawerlayout;import android.support.annotation.NonNull;import android.support.design.widget.NavigationView;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Gravity;import android.view.MenuItem;import android.view.View;import android.widget.Toast;import de.hdodenhof.circleimageview.CircleImageView;public class MainActivity extends AppCompatActivity { NavigationView navigationView; CircleImageView cat,kevin;//点击cat图片拉出抽屉,点击kevin,触发事件 DrawerLayout drawerLayout;//抽屉 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //将各个对象与xml文件中的id对应,绑定 navigationView=findViewById(R.id.menu); cat=findViewById(R.id.cat); drawerLayout = findViewById(R.id.drawerlayout); //将nav_header加入到抽屉的上部分 final View headview = navigationView.inflateHeaderView(R.layout.nav_header); kevin = headview.findViewById(R.id.kevin); //给猫的图片添加监视器,点击后,拉出抽屉 cat.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { drawerLayout.openDrawer(Gravity.START); } }); //点击Kevin图片后,显示屏幕上显示adfa kevin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(headview.getContext(),"adfa",Toast.LENGTH_SHORT).show();//显示消息提示框 } }); //给navigation对象添加项目选择监视器,根据点击的项目不同,所显示的消息不同 navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.nav_2: Toast.makeText(headview.getContext(),"2",Toast.LENGTH_SHORT).show(); break; case R.id.nav_4: Toast.makeText(headview.getContext(),"4",Toast.LENGTH_SHORT).show(); break; case R.id.nav_5: Toast.makeText(headview.getContext(),"5",Toast.LENGTH_SHORT).show(); break; case R.id.nav_6: Toast.makeText(headview.getContext(),"6",Toast.LENGTH_SHORT).show(); break; } return false; } }); }}
最后演示
更多相关文章
- Android相册中获取图片和路径
- android抽屉SlidingDrawer——错误显示
- Android(安卓)使用WebView 加载新闻详情,添加点击图片的js(使用的
- android 开发 View _1_ View的子类们 和 视图坐标系图
- android 左右滑动+索引图标实现方法与代码
- Android中picasso图片缓存
- 编写android加载图片的程序时,遇到了内存泄露问题!
- 【android中级】之android 背景圆角和图片圆角
- android viewflipper 左右滑动切换显示图片效果