2019独角兽企业重金招聘Python工程师标准>>>

DrawerLayout抽屉布局,现在主流App是越来越多使用DrawerLayout,因为这样出来的效果是比较炫酷的吧!其实抽屉界面很简单,没有网上说的那么复杂,今天我就给大家介绍一种比较简单的抽屉布局,DrawerLayout,

效果图:


1:主布局文件(分为2块,第一块是主页面内容,第二块是抽屉页面内容,这是固定的,必须是这样的格式)

<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
   
xmlns:tools= "http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
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"
   
tools:context=".MainActivity" >

<android.support.v4.widget.DrawerLayout
       
android :id="@+id/drawer_layout"
       
android :layout_width="match_parent"
       
android :layout_height="match_parent">
       
        <!-- 主界面-->
       
       
<LinearLayout
           
android:id="@+id/content_frame"
           
android:layout_width="match_parent"
           
android:layout_height="match_parent"
           
android:background="#FF0000">

<Button
               
android:id= "@+id/btn"
               
android:layout_width= "match_parent"
               
android:layout_height= "wrap_content"
               
android:text= "open" />

</LinearLayout >

<!-- 抽屉界面 --> //抽屉页面可以是一个Fragment,或者是ListView,什么都可以,这里以Fragment为列子,因为Fragment可以添加一个布局文件


       
<FrameLayout
           
android:id="@+id/fragment_layout"
           
android:layout_width="match_parent"
           
android:layout_height="match_parent"
           
android:layout_gravity="start"//从左边滑动进来,右边是end,一定要写,不然没有效果
           
android:background="#9053ff59"></ FrameLayout>
    </android.support.v4.widget.DrawerLayout >

</LinearLayout >

2:Fragment布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
android:orientation="vertical" >
    <Button
       
android :layout_width="match_parent"
       
android :layout_height="wrap_content"
       
android :text="按钮一"/>
    <Button
       
android :layout_width="match_parent"
       
android :layout_height="wrap_content"
       
android :text="按钮二"/>

<Button
       
android :id="@+id/item_frgment_bt"
       
android :layout_width="match_parent"
       
android :layout_height="wrap_content"
       
android :text="按钮三"/>

<Button
       
android :layout_width="match_parent"
       
android :layout_height="wrap_content"
       
android :text="按钮四"/>

</LinearLayout >

4:Fragment类

package com.example.yangjie.drawerlayout;

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

/**
* Created by Administrator on 2015/10/17.
*/
public class DrawerFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.item_frgement,container,false);//将布局文件绑定到Fragment中
    }

@Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super .onViewCreated(view, savedInstanceState);

Button  button=(Button)view.findViewById(R.id.item_frgment_bt);

button.setOnClickListener(new View.OnClickListener() { //给抽屉界面的按钮散设置了一个箭头

@Override
            public void onClick(View v) {
                Toast.makeText (getActivity(),"点击了按钮3" ,Toast.LENGTH_SHORT).show();
            }
        });
    }

}

5:Activity

public class MainActivity extends AppCompatActivity {
    private DrawerLayout mDrawerLayout = null ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super .onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

FragmentManager fragmentManager=getFragmentManager();
        FragmentTransaction ft=fragmentManager.beginTransaction();

DrawerFragment  drawerFragment=new DrawerFragment();

ft.add(R.id.fragment_layout,drawerFragment,"标签1");//将fragment绑定到已经占有位置的FrameLayout中

ft.commit();

mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

Button button = (Button) findViewById(R.id.btn);
        button.setOnClickListener(new View.OnClickListener() {

@Override
            public void onClick(View v) {
                // 按钮按下,将抽屉打开
               
mDrawerLayout.openDrawer(Gravity. LEFT); //从左打开

}
        });
    }

}


转载于:https://my.oschina.net/u/2502508/blog/537409

Android抽屉页面效果相关推荐

  1. android 界面切换监听,Android切换页面--setContentView

    setContentView 一般切换页面,通过Intent,startActivity可以实现,但系统创建Activity是非常耗时的,如果对切换画面时间有要求,只能用setContentView在 ...

  2. Android抽屉(SlidingDrawer --类似android通知栏下拉效果)

    Android抽屉(SlidingDrawer)的实现发 - 红黑联盟 http://www.2cto.com/kf/201301/182507.html 可动态布局的Android抽屉之基础 htt ...

  3. Android 抽屉效果Demo

    2019独角兽企业重金招聘Python工程师标准>>> Android 抽屉效果Demo. 转载:http://www.adobex.com/android/source/detai ...

  4. android 抽屉侧滑冲突,利用DrawerLayout和触摸事件分发实现抽屉侧滑效果

    本文实例为大家分享了DrawerLayout和触摸事件分发实现抽屉侧滑效果的具体代码,供大家参考,具体内容如下 效果展示 还是看代码实在,直接上菜了. 1.MainActivity的代码: publi ...

  5. android 右边抽屉,Android实现右边抽屉Drawerlayout效果

    侧边栏是Android应用中很常见的一个界面效果(抽屉效果).而利用DrawerLayout实现右侧栏是相对简单的.而且这个控件自带滑动效果,十分方便. DrawerLayout属于android-s ...

  6. Android实现列表抽屉展示效果

    终于迎来的周末哇,深圳两天的凉雨天终于迎来晴日.早上爬起来异常的累,哎..每天地铁两小时真是强身健体啊~ 今天给大家带来一篇关于Android UI的文章:列表Item抽屉展示效果.单说没意思,不然大 ...

  7. Android滚动页面位置指示器:CircleIndicator

     Android滚动页面位置指示器:CircleIndicator CircleIndicator是github上的一个开源的用于页面滚动时候的位置指示器,指示当前页面在总的页面中的位置和前后位置 ...

  8. android抽屉实现不同之处

    相关链接: Android 抽屉效果Demo http://www.eoeandroid.com/thread-203886-1-1.html Android效果之 抽屉效果 http://www.e ...

  9. Android登录页面设计

    说到开发app,肯定要设计页面布局是吧,我也是个审美不好的人,对于开发app也只能写好功能,页面美观做不好. 今天呢,给大家奉上一篇android登录页面,当然这个页面也是我写的,不过可能并不美观,只 ...

最新文章

  1. linux :YOLO5配置(ubuntu 20.04 下安装运行yolov5)
  2. linux无桌面重做系统,Linux不需要重做系统
  3. 汉字转UNICODE?
  4. LeetCode-76: 最小覆盖子串
  5. 什么是决定计算机内部寄存器,问题解答之 计算机中寄存器定义,分类
  6. Maven 本地仓库更新策略
  7. c语言网页制作,C语言写网页
  8. 深圳市商务局2022年度中央资金(跨境电子商务企业市场开拓扶持事项)申报指南
  9. 把你的桌面变成vista
  10. 文献阅读(40)ICLR2021-Combining Label Propagation and Simple Models Out-performs Graph Neural Networks
  11. 我被这个浏览了 746000 次的问题惊住了!
  12. c++中字符数组与字符串的转换
  13. 计算机桌面提示区,电脑如何设置多时钟显示?电脑设置不同地区时钟时间显示方法...
  14. 2020年PMP笔记归纳第三章项目经理的角色
  15. HDU 2708 Vertical Histogram 【模拟 输出格式】
  16. VC++ InvalidateRect
  17. pixhawk2.4.8飞控相关资料
  18. 什么是JDK、JRE
  19. Laravel的created_at与deleted_at 类型
  20. 毕业设计工作内容和进度

热门文章

  1. CSS height高度 和 width宽度
  2. linux命令——init 的使用用法
  3. sql优化——模糊查询
  4. Content后台的获取为什么为空
  5. Linux Kettle 闪退问题解决方案
  6. 利用IDEA部署过的Tomcat开发Web Service
  7. hanlp 词频统计_10.HanLP实现k均值--文本聚类
  8. conda指定路径_导出不带前缀变量的conda环境,该变量显示executab的本地路径
  9. 研究生导师一般希望招什么样的研究生?
  10. 大数据技术之 Kafka (第 1 章 Kafka 概述)