学习
实践
活动
专区
工具
TVP
写文章

Android Layout的layout_height等属性为什么会不起作用

有的时候,我们配置好的布局文件,在加载完成添加到我们的Activity中后发现,并没有安装我们设置的属性来布局,比为我们设置了android:layout_marginTop=“100dip”,但是运行程序后发现一点作用都没有 ,相似的还有layout_height等以android:layout_开头的属性设置都没有作用,这类问题以我们使用Adapter的作为数据源的时候作用居多,因为Adapter里有一个方法是getView );这句代码上,在使用inflate的时候,如果第二个参数(View root)为null,那么将不会加载你的布局文件里的最顶层的那个布局节点的布局相关配置(就是以android:layout_开头的属性 的时候是不会执行params = root.generateLayoutParams(attrs);这段代码的,这段代码就是把xml里的布局配置转为LayoutParams,换句说就是加载我们配置的布局属性 方法,这样系统框架就会自动使用该布局读取我们在xml中配置的布局属性来控制我们的VIew的位置。。

55930
  • 广告
    关闭

    【玩转 GPU】有奖征文

    精美礼品等你拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    setOnItemClickListener不起作用解决方法

    setOnItemClickListener不起作用解决方法 问题 原因 源码解析 解决方法 问题 使用ListView时通常会和Adapter一起使用,在使用setOnItemClickListener 方法监听节点时不起作用 原因 原因是因为在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件,此时这些子控件会获取到焦点,所以常常当点击item时变化的是子控件 ,item本身的点击没有响应,此时就该用到descendantFocusability属性了,下面让我们看看源码 源码解析 可以看到descendantFocusability有三个属性值 <enum ViewGroup才会获得焦点 <enum name="blocksDescendants" value="2" />:ViewGroup将阻止它的后代接收焦点 解决方法 在Item布局的根布局加上属性

    24030

    扫码关注腾讯云开发者

    领取腾讯云代金券