文档章节

Android抽屉页面效果

代码羊羔
 代码羊羔
发布于 2015/11/30 15:06
字数 650
阅读 125
收藏 1

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); //从左打开

            }
        });
    }

}



© 著作权归作者所有

代码羊羔
粉丝 1
博文 5
码字总数 1923
作品 0
成都
私信 提问
android.support.v4.widget.DrawerLayout 抽屉效果导航菜单

抽屉效果导航菜单图示 如图所示,抽屉效果的导航菜单不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面左上角的一个按钮点击,菜单就滑出来,而且感觉能放很多东西 概况:实现上图...

刘小米_思聪
2014/12/03
0
0
【Android进阶】多抽屉效果 (类似最早QQ使用的效果)

也不知道该怎么取名,暂且就叫他多抽屉效果吧~~ 最早QQ就是这样的效果,点一下,还有声音,呵呵。 一晃,都过去那么多年了... 废话不多说了,看下效果: 这个就是类似抽屉的效果,这边做了三...

晨曦之光
2012/03/01
5.8K
4
Android提高第十九篇之"多方向"抽屉

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 在android上要实现类似Launch的抽屉效果,大家一定首先会想起SlidingDrawer。SlidingDrawer是android官方控件之一,本文的主角...

晨曦之光
2012/03/14
137
0
Android "多方向"抽屉

在android上要实现类似Launch的抽屉效果,大家一定首先会想起SlidingDrawer。SlidingDrawer是android官方控件之一,本文的主角不是它,而是民间的控件工具集合~~~android-misc-widgets。and...

鉴客
2011/09/29
9.7K
12
当webview遇到了Slidingmenu,webView出现卡白,解决方案

Sliding Menu的是一种比较新的设置界面或配置界面效果,在主界面左滑或者右滑出现设置界面,能方便的进行各种操作。如Evernote、Google+、Foursquare等诸多优秀应用都采用了这种界面方案。效...

来自猩猩的茶
2013/11/04
0
6

没有更多内容

加载失败,请刷新页面

加载更多

日志相关---日志配置和过滤器

一、log4j日志简介 1.1、 Loggers 级别和介绍 Loggers组件在此系统中被分为八个级别:ALL、TRANCE、DEBUG、INFO、WARN、ERROR和FATAL、OFF。这八个级别是有顺序的, ##off表示关闭ALL < T...

spinachgit
28分钟前
1
0
六个面试题层层剖析——LongAddr原子类

并发编程面试题 (1)LongAddr的结构是怎样的? (2)当前线程应该访问Cell数组里面的哪一个Cell元素? (3)如何初始化Cell数组? (4)Cell数组如何扩容? (5)线程访问分配的Cell元素有冲...

须臾之余
29分钟前
8
0
MySQL-入门(二)

本部分主要是MySQL的常用函数和高级用法。 一、MySQL排序 排序关键字:order by 排序字段。后面写上要排序字段,排序字段可以有多个,多个采用逗号间隔,order by默认采用升序(asc)排序,可...

潜行-L
40分钟前
3
0
BAM转VCF的方法对比

1 使用GATK HaplotypeCaller #java -jar gatk.jar HaplotypeCaller --native-pair-hmm-threads 4 -R xx.fa -I xx.bam -O xx.vcf --native-pair-hmm-threads用来设置多线程,默认为4线程 2 sa......

悲催的古灵武士
48分钟前
2
0
软件架构设计原则之“KISS”的总结使用

今天聊一聊软件架构设计中的 KISS 原则。 对! 就是亲嘴的那个 “KISS”! 一定要多练习。 ... ... ... ... 作为一个程序员我是推荐理解为“亲嘴”的,可以很好的解决单身问题,但作为一个架...

Owen_Jia
51分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部