如果自定义一个可以点击之后展开/收缩的菜单组件

首先,定义布局文件,如下

<?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方法了,将其设置为在顶部布局的底部即可

收缩:

1 private void close() {
2         RelativeLayout.LayoutParams mlayoutparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, mActivity.getResources().getDimensionPixelSize(R.dimen.bottomlistheight));
3         mlayoutparams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
4         mrelativelayout.setLayoutParams(mlayoutparams);
5         mswitch = !mswitch;
6     }

收缩略有不同,需要设置好高度

时间: 2024-08-02 11:03:31

如果自定义一个可以点击之后展开/收缩的菜单组件的相关文章

jquery实现后台系统左侧菜单的点击展开/收缩二级菜单效果

html: <div class="col-sm-3 col-md-2 sidebar"> <div class="totalt"><a>系统管理系统</a></div> <ul class="menu"> <li class="title"> <a class="item item1"><span cla

Python3 Tkinter基础 Menubutton 设置一个按钮 点击按钮出现下拉菜单

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: from tkinter import * root=Tk() #配置一个按钮并放置 menubutton=Menubutton(root, text='单击出现下拉菜单', relief=RAISED) menubutton.pack() userChoice

点击UITableviewCell展开收缩

#import "ViewController.h" #import "ZSDTestCell.h" @interface ViewController ()<UITableViewDataSource,UITableViewDelegate> { NSMutableArray *dataArray; //数组保存显示内容 NSIndexPath *selectIndex; //记录当前选择的索引 } @end @implementation ViewC

当一个按钮点击不了时,鼠标可以自定义的样式

现在很多网站流行做法,当一个按钮点击不了的时候,会给用户一个略显优雅的提示,即鼠标手势的样式发生变化.简单的样式变化. 图方便就利用下jquery...主要就是注意下,cursor值的用法 $('#www').mouseout(function(){ $('body').css('cursor', 'default'); }); $('#www').mouseover(function(){ $('body').css({'cursor':'url("cursor.png"),defa

Android开发之自定义View-可动画展开收缩View的实现

有时候需要点击一个view可以动画展开和收缩折叠一个View这样的效果,这样就可以直接自定义View来实现. 本例中,采用继承FrameLayout来实现自定义的ExpandView.下面将详细介绍各个部分来实现该类以及如何使用该自定义视图. 效果图如下: 未展开效果: 正在向上折叠收缩中的效果: 已经展开效果: 自定义展开类:ExpandView的实现: package com.czm.customview; import android.content.Context; import and

jquery实现的点击可以展开折叠的垂直导航菜单

jquery实现的点击可以展开折叠的垂直导航菜单:本章节介绍一种比较常见的导航菜单是如何实现的,它具有垂直结构,点击导航主标题可以展开或者折叠二级菜单.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" />

点击UITableView的cell展开收缩

首先要理解UITableView代理方法调用的先后顺序. 当初始化UITableView后,代理回调顺序如下 1://返回cell个数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 2://返回每行的高度 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPat

截取指定长度文章点击可以展开全部代码

截取指定长度文章点击可以展开全部代码:文章的篇幅往往不是那么恰到好处,如果以原有的篇幅展示,那么有可能会影响网页的布局或者美观度,这个时候就要根据情况适量截取一定的字符串,以适应布局,不过当点击一个按钮的时候依然可以展开全部的内容,下面就通过一个实例详细介绍一下如何实现此效果,代码示例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="

Android实现RecyclerView自定义列表、点击事件以及下拉刷新

Android使用RecyclerView 1. 什么是RecyclerView RecyclerView 是 Android-support-v7-21 版本中新增的一个 Widgets,官方对于它的介绍则是:RecyclerView 是 ListView 的升级版本,更加先进和灵活. 简单来说就是:RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式.它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持. 2.