很多时候,我们只顾着羡慕别人,以为自己做不到,于是做都不去做,了解都不去了解
···························
===================================================================================
#运用#
现在类似于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可以深入剖析,参考
相关推荐
在"slidingmenu添加listview"的场景中,我们需要将SlidingMenu框架与ListView集成,以创建一个可以动态加载数据的侧滑菜单。ListView是Android中常用的列表控件,能够高效地显示大量数据,并支持用户交互,如点击和...
在Android应用开发中,我们经常会遇到复杂布局的嵌套,比如`SlidingMenu`、`ViewPager`和`ListView`的组合。这样的设计可以为用户提供类似网易新闻客户端的体验,左侧是滑动菜单,中间是`ViewPager`用于切换不同的...
本教程将详细解释如何在ListView中实现加载不同布局,即“图片文字”与“纯文字”布局交替显示。 首先,我们需要了解ListView的工作原理。ListView通过Adapter类来绑定数据和视图。Adapter就像一个桥梁,连接数据源...
以下是对“自定义布局的动态加载ListView”这一主题的详细说明: 首先,理解ListView的工作原理。ListView通过Adapter来连接数据源和视图,Adapter负责将数据转化为ListView中的每一项视图(ViewHolder)。默认情况...
SlidingMenu通常是通过覆盖主布局的一半或全部来显示的,而ListView则需要在其容器内全屏显示。当用户在ListView上下滑动时,可能会误触到SlidingMenu的边缘,导致菜单意外打开,这便是所谓的冲突。 解决这个问题,...
例如,如果数据项是某种特定类型,就加载布局A;如果是另一种类型,就加载布局B。 4. **防止ClassCastException** - **类型安全的强转**:在获取视图组件时,确保在转换之前检查其类型。例如,可以使用`instanceof...
要实现在ListView中加载多种布局,关键在于自定义Adapter。以下是一些步骤: 1. **创建多种布局**:首先,为每种不同的Item类型创建对应的XML布局文件。例如,你可能有一个简单的文本布局(layout_item_text.xml)...
标题“listview加载不同布局”指的是在同一个ListView中,根据数据的不同类型或者不同状态,动态加载不同的布局文件,以实现更丰富的显示效果。这样的功能通常应用于新闻列表、电商商品列表等场景,每个条目可能需要...
"Android listview动态加载不同布局"这一主题,主要涉及如何在ListView中根据不同的数据类型或者状态显示不同的视图(View)布局,提升用户体验并优化性能。 首先,要实现ListView动态加载不同布局,我们需要理解...
1. **初始化ListView**:在布局文件中添加ListView,并设置其适配器为自定义的BaseAdapter。 2. **创建自定义BaseAdapter**:重写其中的`getCount()`方法返回数据项总数,`getView()`方法负责将数据项转化为...
然而,标题"ListView加载多个布局"表明我们讨论的是如何在一个ListView中加载并显示不同的视图类型。这通常是通过在ListView中实现自定义适配器(Adapter)来完成的,以满足复杂的数据结构和界面需求。下面将详细...
总结起来,创建一个Android的网格布局ListView主要涉及以下几个步骤:设计网格项布局、创建自定义Adapter、在Activity中设置GridView并加载数据。通过灵活地调整布局和Adapter,你可以实现各种复杂的网格布局效果。...
本文将深入探讨如何使用Handler+线程和AsyncTask两种方法来实现ListView的动态加载分页。 首先,我们来看看Handler+线程的实现方式。在主线程中,我们不能直接进行耗时操作,如网络请求或数据库查询,因为这会导致...
ListView的工作原理是利用Adapter来加载数据,并将其渲染为可视化的列表项。 **2. ListView的布局** 在XML布局文件中,我们需要创建一个ListView元素。例如: ```xml <ListView android:id="@+id/list_view" ...
动态加载ListView是指在用户触发特定事件(如点击Button)时,程序按需加载数据到ListView中,而不是一次性加载所有数据,这样可以提高应用的性能和用户体验。本文将详细讲解如何实现“点击button动态加载listView”...
本文将深入探讨“一个非常强大的上下加载ListView”这一技术,它旨在实现类似新浪微博列表的功能,即上拉加载更多新数据,下拉刷新获取旧数据。 首先,我们需要了解ListView的基本工作原理。ListView通过Adapter...
动态加载ListView是优化用户体验、提高应用性能的重要技术。在给定的“动态加载ListView的例子”中,我们将深入探讨这一主题。 首先,动态加载(Lazy Loading)的核心思想是分页加载,即不一次性加载所有数据,而是...
当我们需要在一个ListView中展示多种不同类型的item布局时,这就涉及到"ListView加载多item布局"的技术。本教程将深入探讨如何实现这一功能,并结合性能优化策略,使ListView在处理大量数据时仍能保持流畅的用户体验...
这个问题的解决方法是高效地加载网络图片并自定义ListView的布局。 首先,我们需要了解异步加载的概念。异步加载是为了避免阻塞主线程,它将耗时的操作(如下载图片)放在后台线程中执行,然后在UI线程中更新显示...
android兼容2.2+ SlidingMenu框架整合。里面包含最新的侧滑导航功能;内容的滑动导航功能,listview下拉更新数据功能。这些技术点都是学习android的小伙伴经常用到的,这里全都有,当然这个也是我们开发的其中一个...