侧滑菜单DrawerLayout

侧滑菜单。。。。。。。。。。。。。。
布局:<android.support.v4.widget.DrawerLayout    android:id="@+id/drawer"    android:layout_width="match_parent"    android:layout_height="match_parent"    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    tools:context="com.example.shenhuiran_1205.MainActivity">    <!--主页面的内容 ctrl+alt+l 格式化代码-->    <RelativeLayout        android:layout_height="match_parent"        android:layout_width="match_parent">    <Button        android:id="@+id/btnOpen"        android:layout_height="wrap_content"        android:layout_width="match_parent"        android:text="Hello!"/>    <!--用来放置 碎片的容器 -->    <FrameLayout android:id="@+id/frcontent"        android:layout_height="match_parent"        android:layout_width="match_parent"        android:layout_below="@+id/btnOpen">    </FrameLayout>    </RelativeLayout>        <!---菜单内容 android:layout_gravity="start":菜单在左边 end 菜单在右边 侧滑菜单一般不要超过 320dp -->    <RelativeLayout android:id="@+id/menu"            android:layout_height="match_parent"            android:layout_width="170dp"            android:background="#f00"            android:layout_gravity="start">        <ImageView android:id="@+id/img"            android:layout_height="wrap_content"            android:layout_width="wrap_content"            android:src="@mipmap/ic_launcher"/>        <ListView android:id="@+id/lv"            android:layout_height="match_parent"            android:layout_width="match_parent"            android:layout_below="@+id/img"/>    </RelativeLayout></android.support.v4.widget.DrawerLayout>

===================================================================主要代码:
import android.support.v4.widget.DrawerLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.RelativeLayout;import android.widget.Toast;import java.util.ArrayList;import java.util.List;

public class MainActivity extends AppCompatActivity {    private List<String> data=new ArrayList<>();    private DrawerLayout drawerLayout;    private RelativeLayout menu;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        drawerLayout = findViewById(R.id.drawer);        menu = findViewById(R.id.menu);        Button b=findViewById(R.id.btnOpen);        b.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                drawerLayout.openDrawer(menu);//打开菜单            }        });        ListView listView=findViewById(R.id.lv);        for(int i=0;i<20;i++){            data.add("item"+i);        }        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);        listView.setAdapter(adapter);        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                //关闭菜单                drawerLayout.closeDrawer(menu);                //动态添加fragment                getSupportFragmentManager().beginTransaction().replace(R.id.frcontent,new MyFragment()).commit();            }        });        //添加监听事件        drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {            @Override            public void onDrawerSlide(View drawerView, float slideOffset) {                Log.d("zzz","--"+slideOffset);            }            //            @Override            public void onDrawerOpened(View drawerView) {                Toast.makeText(MainActivity.this,"打开了!",Toast.LENGTH_SHORT).show();            }            @Override            public void onDrawerClosed(View drawerView) {                Toast.makeText(MainActivity.this,"关闭了!",Toast.LENGTH_SHORT).show();            }            /**             * 当抽屉滑动状态改变的时候被调用             * 状态值是STATE_IDLE(闲置--0), STATE_DRAGGING(拖拽的--1), STATE_SETTLING(固定--2)中之一。             * 抽屉打开的时候,点击抽屉,drawer的状态就会变成STATE_DRAGGING,然后变成STATE_IDLE             */            @Override            public void onDrawerStateChanged(int newState) {            }        });    }}=========================================================================
Fragment 类
import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/** * Created by jane on 2017/12/8. */public class MyFragment extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        return inflater.inflate(R.layout.fitem,container,false);    }}====================================================================
fitem.xml布局文件
<android.support.constraint.ConstraintLayout    xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"    android:layout_height="match_parent">

</android.support.constraint.ConstraintLayout>
				
时间: 2024-10-10 15:56:54

侧滑菜单DrawerLayout的相关文章

Android侧滑菜单DrawerLayout(抽屉布局)实现

应用场景: 由于侧滑菜单有更好的用户体验效果,所以更多的App使用侧滑抽屉式菜单列表,如网易客户端.百度影音.爱奇艺等等.至此,侧滑菜单有了更多的使用需求. 知识点介绍: 实现侧滑菜单功能的方法有很多,如果开源的项目SlidingMenu,下载地址为https://github.com/jfeinstein10/SlidingMenu.该开源项目依赖于另一个开源项目ActionBarSherlock,下载地址为https://github.com/JakeWharton/ActionBarShe

android官方侧滑菜单DrawerLayout详解

drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物.drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现). drawerLayout的使用很方便,使用drawerLayout的要点如下: 1.drawerLayout其实是

android 应用架构随笔五(ActionBar与侧滑菜单DrawerLayout)

ActionBar(V7)的添加非常简单,只需要在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类就可以了,在Android 3.0及更高的版本中,Activity中都默认包含有ActionBar组件. drawerLayout(V4)是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物.drawer

【转】android官方侧滑菜单DrawerLayout详解

原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物.drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着

Android侧滑菜单DrawerLayout的使用

现在侧滑菜单使用很多,大都是通过SlidingMenu实现.现在也可以通过DrawerLayout 创建抽屉布局 frament_content.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="

Android 高大上的侧滑菜单DrawerLayout,解决了不能全屏滑动的问题

DrawerLayout预览 DrawerLayout主要功能就是 实现侧滑菜单效果的功能,并且可以通过增加一些设置来实现高大上的效果,那么就请看动态图: 注意左上角那个图标,有木有很好玩,哈哈... 接下来就介绍如何实现这一功能 1. 在项目对应的build.gradle中添加依赖 dependencies { ...//其他代码 compile 'com.android.support:appcompat-v7:24.0.0' compile 'com.android.support:des

Android侧滑菜单DrawerLayout

侧滑菜单控件DrawerLayout是Support Library包中实现了侧滑菜单效果的控件,也许是因为第三方控件如MenuDrawer等的出现之后,Google借鉴而出现的产物.DrawerLayout分为侧边菜单和主内容两部分,侧边菜单可以根据手势展开与隐藏(DrawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化,内容就要自己去实现啦. 下面的例子主要是根据官方文档移植过来的,简单的改动: -----------------------界面布局------------

Android Studio官方版DrawerLayout侧滑菜单解析

效果图如下 这是使用Android Studio新建的一个DrawerLayout项目跑出来后的效果(没有Android Studio的盆友赶紧去下载个吧). 生成后的代码有点混乱,稍微整理一下,那么先看布局文件 activity_main.xml: <?xml version="1.0" encoding="utf-8"?>   <android.support.v4.widget.DrawerLayout xmlns:android="

google 原生态 抽屉式侧滑菜单 Android DrawerLayout 布局的使用介绍

废话不多说,直接上效果图: 其实谷歌官方已经给出了一个 关于DrawerLayout 使用的例子,只是处于 国内不能访问谷歌官网,看不到详细文档说明,所以在此 简单记录下  侧滑 抽屉式菜单的使用说明 1.由于 DrawerLayout 需要 android.support.v4 包的支持,所以,你的libs 下面不要包含 这个包. 2.首先布局文件如下 <android.support.v4.widget.DrawerLayout xmlns:android="http://schema