`

SlidingMenu框架 加载ListView布局menu

阅读更多

很多时候,我们只顾着羡慕别人,以为自己做不到,于是做都不去做,了解都不去了解

···························

===================================================================================

#运用#

现在类似于QQ,乃至我们安卓手机内置的手势滑动调出的菜单已经不在少数,除了这种酷炫的效果以外,也极大地提高了用户体验,以及大大节省了空间,也许我们还做不到那么好看,那么今天我们来实现基本的slidingmenu,也许你会说学习它需要用到GestureDetector还不会处理。那没有关系,网上现在有写好的SlidingMenu,重点是看我们怎么配置,和使用,我在使用的时候也遇到了不少麻烦,那么现在就从开始讲起吧

===================================================================================

#导入slidingmenu包#

附件里面上传了slidingmenu.jar  大家自行下载导入libs



 万事俱备只欠东风

=================================================================================

加入slidingmenu非常简单

首先直接在oncreate里面创建:

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		/*
		 * slidingmenu配置
		 */
		SlidingMenu menu = new SlidingMenu(this);
		menu.setMode(SlidingMenu.LEFT);//设置为左边划出
		// 设置触摸屏幕的模式
		menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏手势划出都可以调出slidingmenu
		menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影效果范围
		menu.setShadowDrawable(R.drawable.shadow);//阴影效果

		// 设置滑动菜单视图的宽度
		menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
		// menu.setBehindWidth(200);
		// 设置渐入渐出效果的值
		menu.setFadeDegree(0.35f);
		menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
		// 为侧滑菜单设置布局
		menu.setMenu(getLeftMenu());
	}

 最后一句setMenu是得到配置好的View

当然也有另一种方法,就是手动配置好要加载的布局,比如

 然后写成menu.setMenu(R.layout.left_menu);

这样就直接加载你已经配置好的布局文件了,显示也显示出来了

但是一旦你在代码中向添加xml什么东西,menu并不会响应,也就是说不会显示出来,这样得到的只是一个死布局,因为我在做的时候想要滑出的是一个ListView,事实上,很多滑出菜单,QQ,微信出来都很多基本是Listview,但是刚开始不知道,写成死布局了,之后在代码里编辑ListView怎么都不响应,网上查到怎么配置listview  的SlidingMenu方法基本没有,只是在教怎么配置slidingmenu,也没有人用的动态布局。因此后面问了大神才知道自己把布局写死了。加上getMenu的方法,动态编辑ListView,现在menu的xml是这样的

<?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" >

    <ListView
        android:id="@+id/left_menu_listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

 布局预览:



 =================================================================================

【编辑ListView】

public View getLeftMenu() {
		//从主布局文件绑定的Activity调用另一个布局文件必须调用LayoutInflater
		LayoutInflater inflater = getLayoutInflater();
		//得到menu的View
		View v = inflater.inflate(R.layout.left_menu, null);
		ListView listview = (ListView) v.findViewById(R.id.left_menu_listview);
		listview.setAdapter(new ArrayAdapter<String>(this,
				android.R.layout.simple_expandable_list_item_1, getData()));
		listview.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int position,
					long arg3) {
				//监听listview item 点击
			}
		});
		return v;
	}
	private List<String> getData() {

		List<String> data = new ArrayList<String>();
		data.add("测试数据1");
		data.add("测试数据2");
		data.add("测试数据3");
		data.add("测试数据4");
       
		return data;
	}

 实现效果整体如下:



 

 

链接有整个项目工程文件,大家下载这个demo可以深入剖析,参考

 

下载链接:http://download.csdn.net/detail/u012763405/9616554

分享到:
评论

相关推荐

    slidingmenu添加listview

    在"slidingmenu添加listview"的场景中,我们需要将SlidingMenu框架与ListView集成,以创建一个可以动态加载数据的侧滑菜单。ListView是Android中常用的列表控件,能够高效地显示大量数据,并支持用户交互,如点击和...

    SlidingMenu+ViewPage+ListView嵌套(类似网易 ) ListView点击事件失效冲突问题解决

    在Android应用开发中,我们经常会遇到复杂布局的嵌套,比如`SlidingMenu`、`ViewPager`和`ListView`的组合。这样的设计可以为用户提供类似网易新闻客户端的体验,左侧是滑动菜单,中间是`ViewPager`用于切换不同的...

    ListView加载不同布局.zip

    本教程将详细解释如何在ListView中实现加载不同布局,即“图片文字”与“纯文字”布局交替显示。 首先,我们需要了解ListView的工作原理。ListView通过Adapter类来绑定数据和视图。Adapter就像一个桥梁,连接数据源...

    自定义布局的动态加载listView

    以下是对“自定义布局的动态加载ListView”这一主题的详细说明: 首先,理解ListView的工作原理。ListView通过Adapter来连接数据源和视图,Adapter负责将数据转化为ListView中的每一项视图(ViewHolder)。默认情况...

    SlidingMenu和Listview冲突解决方案

    SlidingMenu通常是通过覆盖主布局的一半或全部来显示的,而ListView则需要在其容器内全屏显示。当用户在ListView上下滑动时,可能会误触到SlidingMenu的边缘,导致菜单意外打开,这便是所谓的冲突。 解决这个问题,...

    Android ListView加载不同布局.解决异常ClassCastException

    例如,如果数据项是某种特定类型,就加载布局A;如果是另一种类型,就加载布局B。 4. **防止ClassCastException** - **类型安全的强转**:在获取视图组件时,确保在转换之前检查其类型。例如,可以使用`instanceof...

    ListView加载多种布局

    要实现在ListView中加载多种布局,关键在于自定义Adapter。以下是一些步骤: 1. **创建多种布局**:首先,为每种不同的Item类型创建对应的XML布局文件。例如,你可能有一个简单的文本布局(layout_item_text.xml)...

    listview加载不同布局

    标题“listview加载不同布局”指的是在同一个ListView中,根据数据的不同类型或者不同状态,动态加载不同的布局文件,以实现更丰富的显示效果。这样的功能通常应用于新闻列表、电商商品列表等场景,每个条目可能需要...

    Android listview动态加载不同布局

    "Android listview动态加载不同布局"这一主题,主要涉及如何在ListView中根据不同的数据类型或者状态显示不同的视图(View)布局,提升用户体验并优化性能。 首先,要实现ListView动态加载不同布局,我们需要理解...

    android动态加载Listview

    1. **初始化ListView**:在布局文件中添加ListView,并设置其适配器为自定义的BaseAdapter。 2. **创建自定义BaseAdapter**:重写其中的`getCount()`方法返回数据项总数,`getView()`方法负责将数据项转化为...

    ListView加载多个布局

    然而,标题"ListView加载多个布局"表明我们讨论的是如何在一个ListView中加载并显示不同的视图类型。这通常是通过在ListView中实现自定义适配器(Adapter)来完成的,以满足复杂的数据结构和界面需求。下面将详细...

    android ListView 网格布局

    总结起来,创建一个Android的网格布局ListView主要涉及以下几个步骤:设计网格项布局、创建自定义Adapter、在Activity中设置GridView并加载数据。通过灵活地调整布局和Adapter,你可以实现各种复杂的网格布局效果。...

    ListView动态加载数据分页

    本文将深入探讨如何使用Handler+线程和AsyncTask两种方法来实现ListView的动态加载分页。 首先,我们来看看Handler+线程的实现方式。在主线程中,我们不能直接进行耗时操作,如网络请求或数据库查询,因为这会导致...

    listview布局的简单实例

    ListView的工作原理是利用Adapter来加载数据,并将其渲染为可视化的列表项。 **2. ListView的布局** 在XML布局文件中,我们需要创建一个ListView元素。例如: ```xml &lt;ListView android:id="@+id/list_view" ...

    点击button动态加载listView

    动态加载ListView是指在用户触发特定事件(如点击Button)时,程序按需加载数据到ListView中,而不是一次性加载所有数据,这样可以提高应用的性能和用户体验。本文将详细讲解如何实现“点击button动态加载listView”...

    一个非常强大的上下加载ListView

    本文将深入探讨“一个非常强大的上下加载ListView”这一技术,它旨在实现类似新浪微博列表的功能,即上拉加载更多新数据,下拉刷新获取旧数据。 首先,我们需要了解ListView的基本工作原理。ListView通过Adapter...

    动态加载ListView的例子

    动态加载ListView是优化用户体验、提高应用性能的重要技术。在给定的“动态加载ListView的例子”中,我们将深入探讨这一主题。 首先,动态加载(Lazy Loading)的核心思想是分页加载,即不一次性加载所有数据,而是...

    ListView加载多item布局

    当我们需要在一个ListView中展示多种不同类型的item布局时,这就涉及到"ListView加载多item布局"的技术。本教程将深入探讨如何实现这一功能,并结合性能优化策略,使ListView在处理大量数据时仍能保持流畅的用户体验...

    android listview 高效显示网络图片,自定义listview布局

    这个问题的解决方法是高效地加载网络图片并自定义ListView的布局。 首先,我们需要了解异步加载的概念。异步加载是为了避免阻塞主线程,它将耗时的操作(如下载图片)放在后台线程中执行,然后在UI线程中更新显示...

    android兼容2.2+ SlidingMenu框架整合

    android兼容2.2+ SlidingMenu框架整合。里面包含最新的侧滑导航功能;内容的滑动导航功能,listview下拉更新数据功能。这些技术点都是学习android的小伙伴经常用到的,这里全都有,当然这个也是我们开发的其中一个...

Global site tag (gtag.js) - Google Analytics