写项目是碰到的需求,是一个弹窗里面是提示文字,文字有可能会很多,作为一个弹窗高度不能太高,太高就不美观了,所以要限定弹窗的高度,需要满足以下几点:

* ScrollView 嵌套 TextView,限制TextView最大高度。
* TextView未达到最大高度时,自适应高度且不能滚动
* TextView达到最大高度时,可滚动。

那就对 ScrollView 进行调整:

public class MaxHeightScrollView extends ScrollView {private int maxHeight;public MaxHeightScrollView(Context context) {super(context);}public MaxHeightScrollView(Context context, AttributeSet attrs) {super(context, attrs);initialize(context, attrs);}public MaxHeightScrollView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initialize(context, attrs);}private void initialize(Context context, AttributeSet attrs) {TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MaxHeightScrollView);maxHeight = typedArray.getLayoutDimension(R.styleable.MaxHeightScrollView_maxHeight, maxHeight);typedArray.recycle();}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {if (maxHeight > 0) {heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST);}super.onMeasure(widthMeasureSpec, heightMeasureSpec);}}

XML :

       <com.test.widget.MaxHeightScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="@dimen/dp_10"android:fillViewport="true"android:scrollbars="vertical"app:maxHeight="@dimen/dp_300"><TextViewandroid:id="@+id/tv_msg"android:layout_width="match_parent"android:layout_height="wrap_content"android:text=""android:textColor="@color/col_333333"android:textSize="@dimen/sp_14" /></com.test.widget.MaxHeightScrollView>

ScroolView 控制最大高度相关推荐

  1. css 控制div高度自适应浏览器的高度

    css 控制div高度自适应浏览器的高度 1 <html> 2 <head> 3 <style> 4 #myTable{height:100%;border:sol ...

  2. div+css控制最小高度又自适高度

    我们在用div布局的时候经常会遇到这样的一种情况:我们需要设置一个div的高度,当里面的东西超过这个高度时,让这个容器自动被撑开,也就是自适应高度.当里面的信息很少时候,我们就设置它一个最小的固定高度 ...

  3. html里如何修改边框的高度,html – 如何控制边框高度?

    边框总是在包装箱的全长(元素的高度加上其填充)的整个长度,除了调整适用于其的元素的高度之外,它不能被控制.如果您需要的是一个垂直分隔线,您可以使用: content content 用css: spa ...

  4. 工作的思考十三:自我反省+控制情绪+高度和角度

    本来一个多月前写的文章,拖到现在才写好,这种执行力真的挺恶心的,不说了,请看下面的文字: 最近公司出现了离职多发期,虽然我没有离职,但是为了稳固军心,项目经理还是找了每个人进行了一次深入的谈心. 这次 ...

  5. JS跨域控制IFrame高度自适应

    proxy.html放在域名A页面,域名A页面中的iframer的id命名是iFrame,和域名B里面的Js里面的变量对应 <iframe style="HEIGHT: 560px&q ...

  6. js控制iframe高度自动撑开

    <iframe src="index.html" width="100%" name="" id="myiframe&quo ...

  7. Udacity机器人软件工程师课程笔记(二十四) - 控制(其二) - PID优化,梯度下降算法,带噪声的PID控制

    7.非理想情况 (1)积分饱和 到目前为止,我们一直使用的"理想"形式的PID控制器很少用于工业中."时间常数"形式更为常见. 当前说明了理想形式的一些重大缺陷 ...

  8. php滚动窗口多条动态,详解原生JS是实现控制多个滚动条同步跟随滚动

    本文主要和大家详解详解原生JS是实现控制多个滚动条同步跟随滚动,当这两个容器元素的内容都超出了容器高度,即都出现了滚动框的时候,如何在其中一个容器元素滚动时,让另外一个元素也随之滚动. 在一些支持用 ...

  9. Linux中samba的权限详解,活用三种权限 理解Samba的权限控制

    在企业内网开发环境方面,文件服务器是一个非常重要的环节.在这当中,Samba服务器由于其权限控制的高度灵活性,在这里抚琴煮酒会进行一些列详细的说明.之前我们已经介绍了Samba服务器一些入门和基本的更 ...

最新文章

  1. 为什么这门技术如此重要?错过这次黄金期,就晚了!
  2. WCF+Nhibernate 序列化的问题。
  3. 实验一HSRP与STP结合
  4. boost::type_erasure::less_than_comparable相关的测试程序
  5. ptp精准时间协议_PTP协议时间同步精度测试
  6. mysql删除表命令语句_MySQL增删改查语句命令(一)
  7. Hive 禁止提交 大范围磁盘扫描任务(禁止提交where条件包含未分区过滤)
  8. 火箭技术术语_仿真优化火箭发动机 3D 打印制造工艺
  9. 海上瓶子下有东西吗_《海上钢琴师》:宁愿一生孤独,不愿随波逐流。
  10. mysql max() grou by 的使用小记
  11. 【保研】2021南京大学计算机夏令营笔试面试笔记
  12. 仿钉钉考勤统计圆形控件
  13. 深蓝学院-多传感器融合定位课程学习分享-专栏汇总
  14. linux删除ip地址的命令
  15. 3D打印机内网联机打印(1)orangpiPlus安装Octoprint
  16. 腾讯产品/策划笔试面试经验
  17. JavaScript基础 ——【了解JavaScript】
  18. linux下readlink函数详解
  19. 一起来吐槽:来自暗网的公链项目VAS,竟然内含十级分销?
  20. 单词 ---- part3

热门文章

  1. 微信小程序更新webview页面的三种方法
  2. gridStudio 安装(linux)
  3. 云POS连锁版收银系统免费试用 超市连锁收银软件免费注册
  4. serverlet 原理_容器原理架构详解(全)
  5. Maven Dependency设置,详解! 1
  6. 网络流——最大流EK算法讲解
  7. python全国天气信息爬取
  8. android system recovery%3c3e%3e,如何将QQ好友添加为微信好友
  9. ios uiswitch 开关_iOS中的UISwitch(开关)
  10. 非华为电脑管家连接平板--无法连接问题解决方案之一