Android 侧滑栏 (DrawerLayout)
生活随笔
收集整理的這篇文章主要介紹了
Android 侧滑栏 (DrawerLayout)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
DrawerLayout 實(shí)現(xiàn)側(cè)滑欄非常簡(jiǎn)單 支持左滑動(dòng)以及右滑動(dòng) 默認(rèn)滑動(dòng)出來(lái)側(cè)滑欄
DrawerLayout ?需要引入support:appcompat 庫(kù),一般創(chuàng)建項(xiàng)目的時(shí)候自帶的有,這個(gè)庫(kù)就不用管了
DrawerLayout 需要使用 android.support.v4.widget.DrawerLayout 作為父類布局?
側(cè)滑欄的內(nèi)容都是在2測(cè)所以需要使用的android:layout_gravity="start" 或者 android:layout_gravity="end"
start 使得側(cè)滑欄位于左側(cè),end 使得側(cè)滑欄位于右側(cè)
側(cè)滑欄打開(kāi)的方法
drawerLayout.openDrawer(Gravity.START); //打開(kāi)左側(cè)側(cè)滑欄
drawerLayout.closeDrawer(Gravity.START); //關(guān)閉左側(cè)側(cè)滑欄
drawerLayout.openDrawer(Gravity.END);//代開(kāi)右側(cè)側(cè)滑欄
drawerLayout.closeDrawer(Gravity.END);//關(guān)閉右側(cè)側(cè)滑欄
主布局代碼
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/drawer"tools:context=".MainActivity"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/left_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:text="左邊" /><Buttonandroid:id="@+id/right_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:text="右邊" /></RelativeLayout><includelayout="@layout/left_layout"/><includelayout="@layout/right_layout"/></android.support.v4.widget.DrawerLayout>
代碼使用了include 插入布局,另外在寫(xiě)一個(gè)布局,這樣方便自己寫(xiě)布局的時(shí)候查看布局樣式
left_layout 布局代碼
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="280dp"android:layout_height="match_parent"android:layout_gravity="start"android:background="#00d8a0"><Buttonandroid:id="@+id/left_child_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="左邊側(cè)滑欄內(nèi)容"/></RelativeLayout>
這樣寫(xiě)樣式,查看比較方便
right_layout 布局內(nèi)容
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="280dp"android:layout_height="match_parent"android:layout_gravity="end"android:background="@color/colorPrimary"><Buttonandroid:id="@+id/right_child_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="右邊側(cè)滑欄內(nèi)容" /></RelativeLayout>
?
代碼
package com.hly.drawerlayout;import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;public class MainActivity extends AppCompatActivity {private DrawerLayout drawerLayout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);drawerLayout = findViewById(R.id.drawer);findViewById(R.id.left_btn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {drawerLayout.openDrawer(Gravity.START);}});findViewById(R.id.left_child_btn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {drawerLayout.closeDrawer(Gravity.START);}});findViewById(R.id.right_btn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {drawerLayout.openDrawer(Gravity.END);}});findViewById(R.id.right_child_btn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {drawerLayout.closeDrawer(Gravity.END);}});}
}
?
雖說(shuō)代碼簡(jiǎn)單,但是復(fù)習(xí)這里,我還是寫(xiě)了一個(gè)demo 地址連接
總結(jié)
以上是生活随笔為你收集整理的Android 侧滑栏 (DrawerLayout)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RecyclerView 点击Item
- 下一篇: Android include 标签使用