如果自定义一个可以点击之后展开/收缩的菜单组件
2015-02-28 21:53
295 查看
首先,定义布局文件,如下
listview是用来显示展开之后的菜单项的
然后为组件设置点击事件,这很简单,就不贴代码了
重点是点击之后的展开和隐藏
主要是以下的代码
展开:
其中需要注意的就是layoutparams.addrule方法了,将其设置为在顶部布局的底部即可
收缩:
收缩略有不同,需要设置好高度
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_alignParentBottom="true" android:layout_height="68dp"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="68dp" android:id="@+id/bottompic" android:background="@drawable/bottombackground" > <ImageView android:id="@+id/iv_bottomimage" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:background="@drawable/aacon" android:layout_marginLeft="20dp" /> <TextView android:id="@+id/tv_bottomtext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="20dp" android:layout_toRightOf="@id/iv_bottomimage" android:text="@string/_sbottomtext" android:textColor="@color/white" /> <ImageView android:id="@+id/tv_bottomimage1" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@drawable/menuicon" android:layout_marginRight="20dp" /> </RelativeLayout> <LinearLayout android:id="@+id/menulist" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/bottompic" > <ListView android:id="@+id/bottomlistview" style="@style/listmenutype" android:listSelector="@drawable/griditemselecter" ></ListView> </LinearLayout> </RelativeLayout>
listview是用来显示展开之后的菜单项的
然后为组件设置点击事件,这很简单,就不贴代码了
重点是点击之后的展开和隐藏
主要是以下的代码
展开:
private void open() { RelativeLayout.LayoutParams mlayoutparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); mlayoutparams.addRule(RelativeLayout.BELOW, R.id.headlayout1); mrelativelayout.setLayoutParams(mlayoutparams); mswitch = !mswitch; }
其中需要注意的就是layoutparams.addrule方法了,将其设置为在顶部布局的底部即可
收缩:
private void close() { RelativeLayout.LayoutParams mlayoutparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, mActivity.getResources().getDimensionPixelSize(R.dimen.bottomlistheight)); mlayoutparams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); mrelativelayout.setLayoutParams(mlayoutparams); mswitch = !mswitch; }
收缩略有不同,需要设置好高度
相关文章推荐
- 我创建了一个托盘图标,可以正常使用,点击右键打开菜单。问题是如果点击右键后不选择其中一个菜单项进行操作的话,它就总不消失。
- 可以展开刷新不改变的二级树形菜单,大类点击不展开小类,小类有旁边的图标展开(图)
- 在SP中点击OK按钮可以自定义一个必须执行的脚步函数
- ios中的开发一些小工具(就是一个写UIView的自定义组件的脱离环境,可以重新使用)解耦
- 超过一定行数的label强制在末尾加上一个...展开且可以点击成全文
- 自定义View:如果想对一个Android中已经存在的控件进行自定义的 话,可以有两个种方法
- 树状菜单 点击一个关闭另一个 默认第一个栏目的子栏目展开
- 在app中插入广告,你可以用一个图片点击进去,也可以自定义布局
- 当一个按钮点击不了时,鼠标可以自定义的样式
- 一个按钮,如果5分钟内点击再次点击给予提示操作频繁,在JS里可以这样写
- android ExpandableTextView-自定义可以动态展开/收缩显示长文本的TextView
- 用Repeater做的一个可以收缩展开的列表项目
- 可以展开刷新不改变的二级树形菜单,大类点击不展开小类,小类有旁边的图标展开(图)
- 一个左边停靠且可以展开和隐藏的菜单【Jquery插件】
- 点击list,可以新增加一个自定义view的效果
- 自定义一个输入框点击搜索后可以保存记录,搜索有取消,只有输入文字后在出现
- 如果不用MFC,直接使用API写一个Windows程序,需哪些步骤?MFC是怎么做到菜单点击后,响应对应的代码的?
- 在页面中,我们经常看到,一个button按钮,如果属标点击,就会触发一个窗口的显示,如果二次点击并可以隐藏,那么如何通过JAVA配合html来实现这一功能呢?
- 如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server
- Android 自定义一个可以展开显示更多的文本布局