Android中使用XML布局应该是全部安卓开发者最熟悉的操做了,各类布局的特性想必你们也都了如指掌。可是,真正利用好各个布局以达到性能最优,或者配合实现一些单个布局没法实现的特性,在笔者看来是一个很是值得花心思去研究的问题。本文提供的解题思路并不复杂,若是你有其余方案(只经过xml实现),欢迎在评论中留言。android
效果展现
很少废话,直接一个图看下要达到的效果⬇️api
在这个布局中,EditText实现了高度自适配,但限制于一屏内,文字超过一屏时则在EditText控件内进行滑动。充分利用了EditText的特性,避免了ScrollView的使用。app
实现思路
为了实现图中的效果,分析可知最关键的点有三个:布局
有最低高度。这个最简单,用EditText自带的minLines就能够达成效果性能
高度要设为 android:layout_height="wrap_content"测试
EditText所占的空间只有一屏内的空白区域,而且不能超出此区域ui
因而我开始了不断尝试:spa
简单的LinearLayout和FrameLayout都会出现当文字超出一屏高度时,直接就往屏幕外部继续延长了。由于没办法将其限制在某个区域里,若是用LinearLayout的权重效果,那等因而直接占满空白区域了,明显也