真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

Android中DrawerLayout怎么實現(xiàn)側滑菜單效果-創(chuàng)新互聯(lián)

這篇文章主要介紹“Android中DrawerLayout怎么實現(xiàn)側滑菜單效果”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Android中DrawerLayout怎么實現(xiàn)側滑菜單效果”文章能幫助大家解決問題。

創(chuàng)新互聯(lián)公司是一家從事企業(yè)網站建設、成都做網站、網站設計、外貿營銷網站建設、行業(yè)門戶網站建設、網頁設計制作的專業(yè)網站建設公司,擁有經驗豐富的網站建設工程師和網頁設計人員,具備各種規(guī)模與類型網站建設的實力,在網站建設領域樹立了自己獨特的設計風格。自公司成立以來曾獨立設計制作的站點上千多家。

效果圖:

Android中DrawerLayout怎么實現(xiàn)側滑菜單效果

開始寫代碼

DrawerLayout 是v4包里面的,所以項目里面需要添加v4包,具體怎么添加就不多說了,
NavigationView需要在build.gradle里面添加compile ‘com.android.support:design:25.1.0'

activity_main.xml




 
 

 
 

然后在res文件夾里面添加一個menu菜單文件夾,已經添加的就不用添加了

上面的代碼里面NavigationView里面有個 app:menu=”@menu/activity_main_drawer”對應如下:
添加一個菜單文件,名字隨意,我的是activity_main_drawer.xml


activity_main_drawer.xml




 
 
 
 
 
 

 
 
  
  
 
 

再添加一個布局

上面的代碼里面app:headerLayout=”@layout/nav_header_main”對應如下:
添加一個布局,名字是nav_header_main.xml


nav_header_main.xml




 

 

 

MainActivity:

public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener {

 private LinearLayout right;
 private NavigationView left;
 private boolean isDrawer=false;
 private DrawerLayout drawer;



 @Override
 public int getLayoutId() {
 return R.layout.activity_main;
 }

 @Override
 public void initPresenter() {

 }

 @Override
 public void initView() {
 drawer = (DrawerLayout) findViewById(R.id.drawer_layout);


 right = (LinearLayout) findViewById(R.id.right);
 left = (NavigationView) findViewById(R.id.nav_view);

 NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
 navigationView.setNavigationItemSelectedListener(this);

 right.setOnTouchListener(new View.OnTouchListener() {
  @Override
  public boolean onTouch(View view, MotionEvent motionEvent) {
  if(isDrawer){
   return left.dispatchTouchEvent(motionEvent);
  }else{
   return false;
  }
  }
 });
 drawer.setDrawerListener(new DrawerLayout.DrawerListener() {
  @Override
  public void onDrawerSlide(View drawerView, float slideOffset) {
  isDrawer=true;
  //獲取屏幕的寬高
  WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
  Display display = manager.getDefaultDisplay();
  //設置右面的布局位置 根據(jù)左面菜單的right作為右面布局的left 左面的right+屏幕的寬度(或者right的寬度這里是相等的)為右面布局的right
  right.layout(left.getRight(), 0, left.getRight() + display.getWidth(), display.getHeight());
  }
  @Override
  public void onDrawerOpened(View drawerView) {}
  @Override
  public void onDrawerClosed(View drawerView) {
  isDrawer=false;
  }
  @Override
  public void onDrawerStateChanged(int newState) {}
 });


 }



 @Override
 public void onBackPressed() {
 if (drawer.isDrawerOpen(GravityCompat.START)) {
  drawer.closeDrawer(GravityCompat.START);
 } else {
  super.onBackPressed();
 }
 }




 @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;
 }

drawer.openDrawer(GravityCompat.START);//打開滑動菜單

drawer.closeDrawer(GravityCompat.START);//關閉滑動菜單

drawer.isDrawerOpen(GravityCompat.START);//判斷滑動菜單是否打開

關于“Android中DrawerLayout怎么實現(xiàn)側滑菜單效果”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。


名稱欄目:Android中DrawerLayout怎么實現(xiàn)側滑菜單效果-創(chuàng)新互聯(lián)
本文網址:http://weahome.cn/article/djeojj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部