如何获取linearlayout获取view

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
自小对自然界很很热爱,无论从生活或其它媒体都关注着,because物种的多样缤纷,所以讲起动物,我都懂得较多物种的习性。我更迷深海,神秘感一直让我着迷。。
梦想当一个野外考察员。。对自然的探索与研究,这会让我很兴奋,因为我很爱。
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(2481)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'LinearLayout按下(pressed)或获取焦点(focused)时背景设置不同颜色或图片',
blogAbstract:'&LinearLayout&&&&&&&xmlns:android=\"/apk/res/android\"&&& &&android:id=\"@+id/myview\"&&&&&&android:orientation=\"horizontal\"&&&&&&android:layout_width=\"fill_parent\"&&&&&&android:layout_height=\"wrap_content\"&&&',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'自小对自然界很很热爱,无论从生活或其它媒体都关注着,because物种的多样缤纷,所以讲起动物,我都懂得较多物种的习性。我更迷深海,神秘感一直让我着迷。。\r\n梦想当一个野外考察员。。对自然的探索与研究,这会让我很兴奋,因为我很爱。',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
怎么获取LinearLayout里ImageView的坐标及大小
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口可展开和收起的LinearLayout
今日科技快讯
随着芝麻信用分开始进入更多的生活场景(如果芝麻分够高,可以开通花呗、借呗,用于借款;甚至免押金,骑走一辆小蓝车。),近期地下黑市突然兴起一条特殊产业链:伪造各种数据,试图刷高芝麻信用分。因为在芝麻信用分里,可以绑定公积金、房产证、海外征信报告等个人信息,而黑市上伪造这13项数据,只需要400元。
本篇是Chay_Chan 的第五篇投稿, 分享了一个可收起可展开的控件,效果不错,希望大家喜欢。
Chay_Chan的博客地址:
http://blog.csdn.net/chay_chan
ExpandableLinearLayout介绍
开发的过程中,有时我们需要使用到这样一个功能,在展示一些商品的时候,默认只显示前几个,例如先显示前三个,这样子不会一进入页面就被商品列表占据了大部分,可以先让用户可以看到页面的大概,当用户需要查看更多的商品时,点击“展开”,就可以看到被隐藏的商品,点击“收起”,则又回到一开始的状态,只显示前几个,其他的收起来了。就拿美团外卖的订单详情页的布局作为例子,请看以下图片:
订单详情页面一开始只显示购买的前三样菜,当点击“点击展开”时,则将购买的所有外卖都展示出来,当点击“点击收起”时,则将除了前三样菜以外的都隐藏起来。其实要完成这样的功能并不难,为了方便自己和大家以后的开发,我将其封装成一个控件,取名为 ExpandableLinearLayout,下面开始介绍它如何使用以及源码解析。
一、使用默认展开和收起的底部
在布局文件中,使用 ExpandableLinearLayout,代码如下:
和 LinearLayout 的使用方法类似,如果是静态数据,可以在两个标签中间插入子条目布局的代码,也可以在 Java文件 中使用代码动态插入。useDefaultBottom 是指是否使用默认底部(默认为 true,如果需要使用默认底部,可不写这个属性),如果是自定义的底部,则设置为 false,下面会介绍自定义底部的用法,defaultItemCount=”2” 设置默认显示的个数为 2,expandText 为待展开时的文字提示,hideText 为待收起时的文字提示。
在 java文件 中,根据id找到控件,动态往 ExpandableLinearLayout 中插入子条目并设置数据即可,代码如下:
效果如下:
1. 支持修改默认显示的个数
可以修改默认显示的个数,比如将其修改为 3,即 defaultItemCount=”3”。效果如下:
2. 支持修改待展开和待收起状态下的文字提示
可以修改待展开状态和待收起状态下的文字提示,比如修改 expandText=”查看更多”,hideText=”收起更多”。效果如下:
3. 支持修改提示文字的大小、颜色
可以修改提示文字的大小和颜色,对应的属性分别是 tipTextSize,tipTextColor。比如修改 tipTextSize=”16sp”,tipTextColor=”#ff7300”。效果如下:
4. 支持更换箭头的图标
可以修改箭头的图标,只需配置 arrowDownImg 属性,引用对应的图标,这里的箭头图标需要是向下的箭头,这样当展开和收起时,箭头会做相应的旋转动画。设置 arrowDownImg=”@mipmap/arrow_down_grey”,修改为灰色的向下图标。效果如下:
二、使用自定义底部
布局文件中,ExpandableLinearLayout 配置 useDefaultBottom=”false”,声明不使用默认底部。自己定义底部的布局。
java文件中,代码如下:
主要的代码是为 ExpandableLinearLayout 设置状态改变的回调,rlBottom 为自定义底部的根布局 RelativeLayout,为其设置点击事件,当点击的时候调用 ExpandableLinearLayout 的 toggle()方法,当收到回调时,根据状态旋转箭头以及更改文字提示。效果如下:
到这里,ExpandableLinearLayout 的使用就介绍完毕了,接下来是对源码进行解析。
ExpandableLinearLayout 的原理其实很简单,当使用默认的底部时,如果子条目的个数小于或者等于默认显示的个数,则不添加底部,如果子条目的个数大于默认显示的个数,则往最后插入一个默认的底部,一开始的时候,将 ExpandableLinearLayout 除了默认显示的条目和底部不隐藏以外,其他的子条目都进行隐藏,当点击“展开”的时候,将被隐藏的条目设置为显示状态,当点击“收起”的时候,将默认显示条目以下的那些条目都隐藏。
首先介绍下 ExpandableLinearLayout 自定义的属性:
ExpandableLinearLayout 继承于 LinearLayout:
添加子条目的方法 addItem(View view):
当添加条目的时候,获取所有子条目的个数,如果是不使用默认底部的话,则只是将 View 添加到 ExpandableLinearLayout 中,当数目超过默认显示个数时,则调用 hide()方法,收起除了默认显示条目外的其他条目,即将它们设置为隐藏。
如果是使用默认底部,hasBottom 为是否已经有底部的标志,如果还没有底部则是直接往 ExpandableLinearLayout 中顺序添加,如果已经有底部,则是往底部前一个的位置添加 View。调用的相关方法代码如下:
点击的时候调用 toggle() 会根据当前状态,进行展开或收起,如果当前是展开状态,即 isExpand 为 true,则调用 hide()方法 收起,否则,当前是收起状态时,调用 expand( ) 进行展开。这里判断如果有设置状态改变的监听,如果有则调用接口的方法将状态传递出去,expand( )方法 的代码如下:
到这里为止,ExpandableLinearLayout 的源码解析就结束了,希望这个控件可以帮助到大家。
在项目根目录下的 build.gradle 中的 allprojects{} 中,添加 jitpack 仓库地址,如下:
打开 app 的 module 中的 build.gradle,在 dependencies{} 中,添加依赖,如下:
源码github地址:
/chaychan/ExpandableLinearLayout
同时也收录在 PowfulViewLibrary 中,如果想要在 PowfulViewLibrary 也有这个控件,更新下 PowfulViewLibrary 的版本。以下版本为目前最新:
compile ‘com.github.chaychan:PowerfulViewLibrary:1.1.6’
PowerfulViewLibrary 源码地址:
/chaychan/PowerfulViewLibrary
每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。
如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点

我要回帖

更多关于 linearlayout 的文章

 

随机推荐