Android抽屉菜单SlidingDrawer 简单使用

<?xml version="1.0" encoding="utf-8"?>

<!-- 需要设置SlidingDrawer的handle和content的id -->

<SlidingDrawer xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/slidingdrawer"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:content="@+id/content"

android:handle="@+id/handle"

android:orientation="horizontal" >

<!-- 设置handle,来处理滑动抽屉 -->

<ImageButton

android:id="@id/handle"

android:layout_width="50dp"

android:layout_height="50dp"

android:src="@drawable/ic_launcher" />

<!-- 设置内容View -->

<RelativeLayout

android:id="@id/content"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#F0F0F0" >

<TextView

android:id="@+id/show_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center_vertical|center_horizontal"

android:text="简单抽屉效果"

android:textColor="#333333"

android:textSize="18sp" />

<ListView

android:id="@+id/lv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/show_tv" >

</ListView>

</RelativeLayout>

</SlidingDrawer>

--------------Activity代码 -----------

public class MainActivity extends Activity {

private SlidingDrawer mSlidDrawer;

private ImageButton mImageBtn;

private TextView mShowTv;

private List<String> dataList;

private ListView mLv;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initViews();

initDatas();

initDrawerListeners();

}

@SuppressWarnings("deprecation")

private void initDrawerListeners() {

mSlidDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() {

public void onDrawerOpened() {

mImageBtn.setImageResource(R.drawable.a1);

}

});

mSlidDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {

public void onDrawerClosed() {

mImageBtn.setImageResource(R.drawable.ic_launcher);

}

});

mSlidDrawer.setOnDrawerScrollListener(new SlidingDrawer.OnDrawerScrollListener() {

public void onScrollEnded() {

mShowTv.setText("滑动打开");

mLv.setAdapter(new DrawerAdpater(getApplicationContext(), dataList));

}

public void onScrollStarted() {

mShowTv.setText("滑动隐藏");

}

});

mLv.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

mShowTv.setText(dataList.get(position));

}

});

}

private void initDatas() {

dataList = new ArrayList<String>();

for (int i = 0; i <= 6; i++) {

dataList.add("抽屉菜单第" + i + "层");

}

}

private void initViews() {

mImageBtn = (ImageButton) findViewById(R.id.handle);

mSlidDrawer = (SlidingDrawer) findViewById(R.id.slidingdrawer);

mShowTv = (TextView) findViewById(R.id.show_tv);

mLv = (ListView) findViewById(R.id.lv);

}

}

--------------Activity中ListView的适配器DrawerAdpater ---------

public class DrawerAdpater extends BaseAdapter {

List<String> list;

LayoutInflater inflater;

public MyAdpater(Context context, List<String> list) {

this.list = list;

this.inflater = LayoutInflater.from(context);

}

public int getCount() {

return list.size();

}

public long getItemId(int position) {

return position;

}

public View getView(int position, View convertView, ViewGroup parent) {

if (convertView == null) {

convertView = inflater.inflate(R.layout.item, null);

}

TextView textView = (TextView) convertView.findViewById(R.id.text);

textView.setText(list.get(position));

return convertView;

}

@Override

public Object getItem(int position) {

return list.get(position);

}

}

时间: 2024-11-05 13:35:48

Android抽屉菜单SlidingDrawer 简单使用的相关文章

Android抽屉菜单DrawerLayout的实现案例

(1)项目布局文件 activity_main.xml <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="

Android 侧滑菜单的简单实现(SlidingMenu)二

在上一篇博文中已经简单的实现了侧滑菜单,代码也很简单,就几行代码. 这篇文章依然讲侧滑菜单,与前一篇文章不同的是,这篇文章用不同的代码方式来实现侧滑菜单. 在前面的文章中已经用了在Activity中通过SlidingMenu构造方法直接设置侧滑菜单,这里换成通过Activity继承SlidingActivity来实现侧滑. 代码如下: public class MainActivity extends SlidingActivity 重写onCreate()方法: @Override publi

Android 侧滑菜单的简单实现(SlidingMenu)

在我还没有学习Android的时候就用过侧滑菜单的APP,当时第一个感觉是:哇塞,这效果不错!当然,现在自己都已经学Android了,这效果当然也要做出来啊~ SlidingMenu是一种比较新的设置界面或配置界面的效果(我觉得已经不新了耶~),在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像facebook.人人网.everynote.Google+等等.效果如下图: 其实网上已经有很多写SlidingMenu使用的文章了.不过,别人始终是别人

Android使用DrawerLayout创建左右两个抽屉菜单

在android support.v4 中有一个抽屉视图控件DrawerLayout.使用这个控件,可以生成通过在屏幕上水平滑动打开或者关闭菜单,能给用户一个不错的体验效果. 最近在项目中,设计中有用到这个效果,但是是左右两边都能划出这样的一个菜单效果.经过使用发现,在xml布局中和代码中,几乎是添加添加同样的代码,就可以实现这种作用两种菜单的效果. 效果图如下: 左边拉出菜单: 右边拉出菜单效果: 具体的实现方法如下,结合代码文件,跟大家分享一下: 主页布局文件: <?xml version=

android自定义viewgroup初步之一----抽屉菜单

几天前在慕课网上看到鸿洋老师的 自定义卫星菜单,感觉很有意思,于是看完视频以后,自己也尝试写了一遍,并且添加了可拖拽效果(光看视频是不管用的,一定要自己动手做!切记不要照着抄代码). 有兴趣的同学可以去慕课网看看(并非广告):http://www.imooc.com/learn/300 自定义控件这个玩意呢,就得考多练,于是又写了一个抽屉效果的菜单,也是比较简单的. 老规矩,先上效果图: 那么中间的圆圈就是卫星菜单拉,而左下角的呢,是抽屉菜单. 下面进入正题: 自定义Viewgroup的一般步骤

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

Android抽屉(SlidingDrawer)的实现发 - 红黑联盟http://www.2cto.com/kf/201301/182507.html 可动态布局的Android抽屉之基础http://blog.csdn.net/hellogv/article/details/6789698 android抽屉实现http://blog.csdn.net/wangkuifeng0118/article/details/7229200 Android 使用动画效果后的控件位置处理 类似系统通知栏

android 5.X Toolbar+DrawerLayout实现抽屉菜单

前言 ?android5.X新增的一个控件Toolbar,这个控件比ActionBar更加自由,可控,因为曾经的ActionBar的灵活性比較差,所以google逐渐使用Toolbar替代ActionBar,所以Toolbar也能够说是超级ActionBar. 这篇文章不具体介绍ToolBar的使用(定制),主要是介绍Toolbar使用的一个样例.即Toolbar结合DrawerLayout实现抽屉菜单. 使用这个两个控件须要引入对应的库依赖: dependencies { compile fi

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

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

Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现

本文首发于CSDN博客,转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8714621 人人客户端有一个特效还是挺吸引人的,在主界面手指向右滑动,就可以将菜单展示出来,而主界面会被隐藏大部分,但是仍有左侧的一小部分同菜单一起展示. 据说人人客户端的这个特效是从facebook客户端模仿来的,至于facebook是不是又从其它地方模仿来的就不得而知了.好,今天我们就一起来实现这个效果,总之我第一次看到这个特效是在人人客户端看到的,我