虽然我还是个菜鸟,但是问这问题还被人取笑,感觉蓝瘦香菇鱼焖~~
所以,写了这篇来避免大家入坑
其实,确实也很简单,只需要在布局设定EditText的最小高度为你想设定的值大小,然后设定高为自适应就行了
代码如下:
<EditText
android:id="@+id/data"
android:gravity="clip_vertical"
android:textSize="@dimen/data_textSize"
android:minHeight="@dimen/long_editText_height"
android:textColor="@color/black"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
这里的long_editText_height我设定为150dp,简单吧,但是我百度的方法可能不对吧,就是百度现在这个标题的,找不到解决方法,
所以才问人~~
还有一种方法,复杂一点:来自--http://blog.csdn.net/lang791534167/article/details/30542709
EditText自适应高度
在开发中做到一个表单页面,由很多EditText构成的,为了使页面尽量美观整齐,每个EditText都设置为固定高度,可是当过多的文字内容加载进来时,就会导致部分文字由于控件高度的原因显示不出来,如下图 标题行展示
由于数据时从数据库中加载,所以文字长度是不固定的,所以我们就可以根据文字长度来自动计算控件的高度,代码如下,其他控件也可依次类推
-
-
-
-
-
-
-
-
-
-
- private void caculateHeight ( final LinearLayout linearLayout ,
- final EditText editText , final String contents) {
-
- ViewTreeObserver vto = editText .getViewTreeObserver();
- vto.addOnPreDrawListener( new ViewTreeObserver .OnPreDrawListener() {
- @Override
- public boolean onPreDraw() {
- Boolean hasMessured = (Boolean ) editText .getTag();
- if ( hasMessured == false ) {
- editText.setTag( true );
- int width = editText.getWidth();
- int height = editText.getHeight();
- if ( width != 0 && height != 0) {
- if (!TextUtils .isEmpty (contents )) {
-
- int len = contents .length();
-
- float px = editText .getTextSize();
- Log. i( "time" , "字体像素:" + px + ",控件宽度:" + width );
- double length = Math .floor (width / px );
- if ( len > length) {
- int llWidth = linearLayout .getLayoutParams().width ;
- int offset = ( int) (len / length );
- linearLayout
- .setLayoutParams( new LinearLayout .LayoutParams(
- llWidth, ( int) ( height + px
- * offset)));
- }
-
- }
- }
- }
- return true ;
- }
- });
- }