android设置布局高度自适应,Android XML灵活布局之 EditText实现自适应高度同时限制最小和最大高度...

Android中使用 XML 布局应该是所有安卓开发者最熟悉的操作了,各种布局的特性想必大家也都了如指掌。但是,真正利用好各个布局以达到性能最优,或者配合实现一些单个布局无法实现的特性,在笔者看来是一个非常值得花心思去研究的问题。本文提供的解题思路并不复杂,如果你有其他方案(只通过xml实现),欢迎在评论中留言。

效果展示

不多废话,直接一个图看下要达到的效果:arrow_down:

b18fb7850461ee91f2171b4b21c39d49.gif

在这个布局中, EditText 实现了高度自适配,但限制于一屏内,文字超过一屏时则在 EditText 控件内进行滑动。充分利用了 EditText 的特性,避免了 ScrollView 的使用。

实现思路

为了实现图中的效果,分析可知最关键的点有三个:

有最低高度。这个最简单,用 EditText 自带的 minLines 就可以达成效果

高度要设为 android:layout_height="wrap_content"

EditText所占的空间只有一屏内的空白区域,并且不能超出此区域

于是我开始了不断尝试:

简单的 LinearLayout 和 FrameLayout 都会出现当文字超出一屏高度时,直接就往屏幕外部继续延长了。因为没办法将其限制在某个区域里,如果用 LinearLayout 的权重效果,那等于是直接占满空白区域了&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值