雖然我還是個菜鳥,但是問這問題還被人取笑,感覺藍瘦香菇魚燜~~
所以,寫了這篇來避免大家入坑
其實,確實也很簡單,只需要在佈局設定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 ;
-
}
-
});
-
}