1. 首页
  2. 招生教育
  3. wrap_content(wrap_content没有高度的原因)

wrap_content(wrap_content没有高度的原因)

简介:关于wrap_content(wrap_content没有高度的原因)的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于招生教育技术大全及相关资讯,可以多多关注茶馆百科网。

#本文目录一览

1、listview设置宽度为wrap_content,为什么它还是占满全屏。2、fill_parent、wrap_content和match_parent的区别3、Android自定义View:为什么你设置的wrap_content不起作用?4、wrapcontent是什么意思5、自定义View:为什么wrap_content属性不起作用6、Android中的wrap_content是什么意思1listview设置宽度为wrap_content,为什么它还是占满全屏。

wrap_content的意思是根据里面的内容宽度来决定宽度。

wrap_content并不意味着不会占满全屏,如果里面有元素占满了全屏,则listview的宽度就会自动全屏。

一般来说listview都会设置成宽度占满全屏。

2fill_parent、wrap_content和match_parent的区别

1.fill_parent/match_parent:这两个其实是一个意思,就是填满整个屏幕.我们可以这样理解,一个电脑的背景图片设置为拉伸,不管这个电脑屏幕多大,这个图片多小,这图片都要拉大拉大,然后覆盖整个屏幕。

wrap_content:内容决定大小,这样想嘛,我们有一个弹簧套子,就是wrap_content,塞苹果的时候他就是苹果大小,塞西瓜时候他就是西瓜大小。

3Android自定义View:为什么你设置的wrap_content不起作用?

在使用自定义View时,View宽/高的wrap_content属性不起自身应有的作用,而且是起到与match_parent相同作用。

其实这里有两个问题:

请分析解决问题之前,请先看自定义View原理中(2)自定义ViewMeasure过程-最易懂的自定义View原理系列

问题出现在View的宽/高设置,那我们直接来看自定义View绘制中之一步对View宽/高设置的过程:measure过程中的onMeasure()***

继续往下看getDefaultSize()

从上面发现:

那么有人会问:wrap_content和match_parent具有相同的效果,为什么是填充父容器的效果呢?

我们知道,子View的MeasureSpec值是根据子View的布局参数(LayoutParams)和父容器的MeasureSpec值计算得来,具体计算逻辑封装在getChildMeasureSpec()里。

接下来,我们看生成子ViewMeasureSpec的***:getChildMeasureSpec()的源码分析:

getChildMeasureSpec()

从上面可以看出,当子View的布局参数使用match_parent或wrap_content时:

所以:wrap_content起到了和match_parent相同的作用:等于父容器当前剩余空间大小

当自定义View的布局参数设置成wrap_content时时,指定一个默认大小(宽/高)。

这样,当你的自定义View的宽/高设置成wrap_content属性时就会生效了。

网上流传着这么一个解决方案:

答:是,当父View为AT_MOST、View为match_parent时,该View的match_parent的效果就等于wrap_content。上述***存在逻辑错误,但由于这种情况非常特殊的,所以导致最终的结果没有错误。具体分析请看下面例子:

从上面的效果可以看出,View大小=默认值

我再将子View的属性改为wrap_content:

从上面的效果可以看出,View大小还是等于默认值。

相信看到这里你已经看懂了:

为了更好的表示判断逻辑,我建议你们用本文提供的解决方案,即根据布局参数判断默认值的设置

不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度。

4wrapcontent是什么意思

wrapcontent

包装内容

wrap

[英][ræp][美][ræp]

vt.包;缠绕;用…包裹(或包扎、覆盖等);掩护;

n.膝毯,披肩,围巾,围脖,头巾,罩衫,外套,大衣;包装纸;〈俚〉机密;

vi.缠绕,盘绕(通常与over,around等连用);包上,裹上;穿上(衣服等);

第三人称单数:wraps过去分词:wrapped复数:wraps现在进行时:wrapping过去式:wrapped

以上结果来自金山词霸

例句:

1.

Pleasewrapthisforme.

请帮我把这个包起来。

5自定义View:为什么wrap_content属性不起作用

在使用自定义View时,View宽/高的wrap_content属性不起自身应用的作用,而且是起到了与match_parent相同作用?

问题出现在View的宽/高设置,那我们直接来看自定义View绘制中之一步对View宽/高设置的过程:measure过程中的onMeasure()***:

继续往下看getDefaultSize(),其作用是根据父View提供的宽/高测量规格计算View自身的宽/高值。源码分析如下:

1.getDefaultSize()的默认实现中,当View的测量模式是AT_MOST或EXACT***时,View的大小都会被设置成父View的specSize。

2.因为AT_MOST对应wrap_content,EXACT***对应match_parent,所以默认情况下,wrap_content和match_parent是具有相同的效果。

这里就解决了wrap_content起到了与match_parent相同的作用。

那么有人会问,View的MeasureSpec是怎么赋值的?

我们知道,View的MeasureSpec的值是根据View的布局参数(LayoutParams)和父容器的MeasureSpec值计算得来的,具体计算逻辑封装在getChildMeasureSpec()里。

我们来分析下getChildMeasureSpec的源码:

从上面可以看出,当子view的布局参数使用match_parent或wrap_content时,子view的specSize总是等于父容器当前剩余空间大小

当自定义View的布局参数设置成wrap_content时,指定一个默认大小(宽/高)。具体是在复写onMeasure()里进行设置。

这样,当你的自定义View的宽/高设置成wrap_content属性时就会生效了。

6Android中的wrap_content是什么意思

WRAP_CONTENT、MATCH_PARENT/FILL_PARENT属性的原理说明

①fill_parent

设置一个视图的布局为fill_parent将强制性地使视图扩展至父元素大小。

②match_parent

Android中match_parent和fill_parent意思一样,但match_parent更贴切,于是从2.2开始两个词都可以

用,但2.3版本后建议使用match_parent。

③wrap_content

自适应大小,强制性地使视图扩展以便显示其全部内容。以TextView和ImageView控件为例,设置为

wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。

出处:

好了,文章到这里就结束啦,如果本次分享的wrap_content和wrap_content没有高度的原因问题对您有所帮助,还望关注下本站哦!

本文主要介绍了关于wrap_content(wrap_content没有高度的原因)的相关养殖或种植技术,招生教育栏目还介绍了该行业生产经营方式及经营管理,关注招生教育发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解招生教育技术怎么管理的要点,是您招生教育致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/497605.html