bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Android中DrawerLayout如何實現(xiàn)側(cè)滑菜單效果

這篇文章主要為大家展示了“Android中DrawerLayout如何實現(xiàn)側(cè)滑菜單效果”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Android中DrawerLayout如何實現(xiàn)側(cè)滑菜單效果”這篇文章吧。

公司主營業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出桂陽免費做網(wǎng)站回饋大家。

效果圖:

Android中DrawerLayout如何實現(xiàn)側(cè)滑菜單效果

開始寫代碼

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

activity_main.xml

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/drawer_layout"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:fitsSystemWindows="true"
 tools:openDrawer="start">

 <!-- 右邊視圖 -->
 <include
 layout="@layout/app_bar_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent" />

 <!-- 左邊菜單 -->
 <android.support.design.widget.NavigationView
 android:id="@+id/nav_view"
 android:layout_width="wrap_content"
 android:layout_height="match_parent"
 android:layout_gravity="start"
 android:fitsSystemWindows="true"
 app:headerLayout="@layout/nav_header_main"
 app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>

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

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

activity_main_drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

 <group android:checkableBehavior="single">
 <item
  android:id="@+id/nav_camera"
  android:icon="@drawable/ic_menu_camera"
  android:title="第一行" />
 <item
  android:id="@+id/nav_gallery"
  android:icon="@drawable/ic_menu_gallery"
  android:title="第二行" />
 <item
  android:id="@+id/nav_slideshow"
  android:icon="@drawable/ic_menu_slideshow"
  android:title="第三行" />
 <item
  android:id="@+id/nav_manage"
  android:icon="@drawable/ic_menu_manage"
  android:title="第四行" />
 </group>

 <item android:title="Communicate">
 <menu>
  <item
  android:id="@+id/nav_share"
  android:icon="@drawable/ic_menu_share"
  android:title="第五行" />
  <item
  android:id="@+id/nav_send"
  android:icon="@drawable/ic_menu_send"
  android:title="第六行" />
 </menu>
 </item>

</menu>

再添加一個布局

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

nav_header_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:layout_width="match_parent"
 android:layout_height="@dimen/nav_header_height"
 android:background="@drawable/side_nav_bar"
 android:gravity="bottom"
 android:orientation="vertical"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 android:theme="@style/ThemeOverlay.AppCompat.Dark">

 <ImageView
 android:id="@+id/imageView"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:paddingTop="@dimen/nav_header_vertical_spacing"
 app:srcCompat="@android:drawable/sym_def_app_icon" />

 <TextView
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:paddingTop="@dimen/nav_header_vertical_spacing"
 android:text="哈哈哈"
 android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

 <TextView
 android:id="@+id/textView"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="123456789@qq.com" />

</LinearLayout>

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();
  //設(shè)置右面的布局位置 根據(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);//關(guān)閉滑動菜單

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

以上是“Android中DrawerLayout如何實現(xiàn)側(cè)滑菜單效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞標(biāo)題:Android中DrawerLayout如何實現(xiàn)側(cè)滑菜單效果
文章網(wǎng)址:http://vcdvsql.cn/article10/gdgego.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃搜索引擎優(yōu)化微信小程序企業(yè)建站網(wǎng)站內(nèi)鏈網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司