中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Android應用中利用DrawerLayout實現一個側拉菜單欄功能

發布時間:2020-12-05 16:44:22 來源:億速云 閱讀:178 作者:Leah 欄目:移動開發

如何在Android應用中利用DrawerLayout實現一個側拉菜單欄功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

activity_main.xml

<&#63;xml version="1.0" encoding="utf-8"&#63;> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  xmlns:tools="http://schemas.android.com/tools" 
  xmlns:app="http://schemas.android.com/apk/res-auto" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  tools:context="com.example.lenovo.mydrawerlayout.MainActivity"> 
<android.support.v4.widget.DrawerLayout 
  android:layout_width="match_parent" 
  android:id="@+id/drawer_layout" 
  android:layout_height="match_parent"> 
  <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    > 
    <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="&#63;attr/actionBarSize" 
      android:background="&#63;attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 
    <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="這是主界面" 
      /> 
  </LinearLayout> 
  <LinearLayout 
    android:layout_width="300dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="left" 
    android:background="#f00" 
    > 
    <TextView 
      android:id="@+id/t" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="這是側拉界面" 
      /> 
  </LinearLayout> 
</android.support.v4.widget.DrawerLayout> 
</LinearLayout> 

注:DrawerLayout下有兩個布局,DrawerLayout的第一個子元素是主要內容,即抽屜沒有打開時顯示的布局,DrawerLayout的第二個子元素是抽屜中的內容,即抽屜布局,layout_gravity為側拉方向

因為用到Toolbar所以要把ActionBar替換了所以設置

values下設置styles.xml    為NoActionBar

<resources> 
   <!-- Base application theme. --> 
  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
  </style> 
  <style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
  </style> 
  <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
  <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 
</resources> 

MainActivity

package com.example.lenovo.mydrawerlayout; 
 import android.os.Bundle; 
import android.support.design.widget.Snackbar; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.widget.TextView; 
public class MainActivity extends AppCompatActivity { 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //Toolbar代替ActionBar 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    // DrawerLayout 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    //Toolbar上面最左邊顯示三杠圖標監聽DrawerLayout 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( 
        this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 
    //側拉頁面字體 
    TextView t= (TextView) findViewById(R.id.t); 
    t.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        Snackbar.make(v, "側拉頁面", Snackbar.LENGTH_LONG) 
            .setAction("Action", null).show(); 
      } 
    }); 
  } 
  @Override 
  public void onBackPressed() { 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer.isDrawerOpen(GravityCompat.START)) { 
      drawer.closeDrawer(GravityCompat.START); 
    } else { 
      super.onBackPressed(); 
    } 
  } 
} 

看完上述內容,你們掌握如何在Android應用中利用DrawerLayout實現一個側拉菜單欄功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和政县| 东莞市| 鹤壁市| 霍城县| 嘉兴市| 原平市| 天水市| 武定县| 枣阳市| 图片| 加查县| 乐安县| 林西县| 恭城| 河北区| 邵阳县| 太原市| 阳谷县| 万州区| 竹北市| 沁水县| 寿宁县| 阿城市| 宜昌市| 广饶县| 孙吴县| 康保县| 中超| 南开区| 永登县| 临江市| 清涧县| 安龙县| 册亨县| 任丘市| 甘德县| 张家界市| 石柱| 蓝山县| 天水市| 常熟市|