adjustViewBounds 无效的问题

一、解决在RelativeLayout中使用ImageView, adjustViewBounds 无效的问题。

1、 在RelativeLayout中
(1) layout_height设定一个定值如100dp, layout_width设为wrap_content, adjustViewBounds设为true, 无效,无论高度如何调整,宽度依然保持不变,为wrap_content
(2) 反过来,layout_width设定定值,layout_height设为wrap_content, 则设置adjustViewBounds为true,生效,高度会随宽度变化。
2、 在LinearLayout中
无论是定高, 然后宽度wrap_content, 或者是反过来, 全部生效。
3、 解决办法
在RelativeLayout中使用ImageView, 若要adjustViewBounds生效,可以在ImageView外面包裹一层LinearLayout。
4、 说明(关于maxWidth, maxHeight)
(1)以上的验证中,无论adjustViewBounds生效还是未生效, 都没有设置maxHeight或者maxWidth**,这与网上普遍流传的 adjustViewBounds 必须和maxWidth或者maxHeight配合使用 才能生效的结论不符。
(2)而且maxHeight或者maxWidth有其自己的含义,随便拿来用,只怕与本来的设计思路不符。
(3)同时, 我在Android官方文档中也没有看到 必须使用maxWidth or minHeight的说法。

查看关于这块的API文档

二、Scrollview中有EditText,当点击EditText后再滚动Scrollview会出现Scrollview自动回滚到某个位置的情况。

解决办法:

 scrollView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
        scrollView.setFocusable(true);
        scrollView.setFocusableInTouchMode(true);
        scrollView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                v.requestFocusFromTouch();
                return false;
            }
        });

推荐阅读更多精彩内容

  • 一、控件回顾: (一)、需要掌握的n个UI控件、组件名称: (二)、基本控件:——TextView: 1、ando...
    白话徐文涛阅读 404评论 0 1
  • 网传constraintLayout(约束布局)的布局,性能和功能性相当优越,虽然RelativeLayout用的...
    才华横溢的王小白阅读 2,049评论 0 16
  • ConstraintLayout 是在 2016 年 Google 大会上推出的一个新的布局控件,众所周知,Con...
    lijiankun24阅读 4,375评论 3 34
  • 2263~泡沫 罗杰斯说,最好的爱是无条件的爱,既不管你的外在条件如何,我一如既往的爱你,我仅仅因为你是我的孩子,...
    持续行动的泡沫阅读 139评论 0 0
  • pipeline主要是特征工程流程化,也便于自己扩展 以官网代码为例: 以上代码中, Tokenizer,Hash...
    天之見證阅读 1,623评论 0 0
  • [关于换工作] 见过很多小毛孩动不动威胁老大,老子不干了,然后行李一收拾,重回天涯。 其实,我们可以想象一下,每个...
    每日读报时间_幕僚阅读 112评论 0 0
  • 随着一小时左右的颠簸车程,我们到了重庆的鸿恩寺公园的大门,从大门进去后才发现里面很大,朋友说要是前段时间来就会看...
    阑十三阅读 156评论 0 14