2012-10-13 28 views
11

我知道的各種問題已經被問及這之前,但我找不到我的問題的答案。我正在開發一個android應用程序,並且我想要一個EditText字段在用戶輸入時展開。我希望它首先是最小尺寸,如果用戶輸入的數量超過了最小允許的數量,則擴展它。以下是我的代碼到目前爲止:做的EditText增長,因爲它充滿

<ScrollView 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:fillViewport="true" > 

    <linearLayout 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     android:orientation="vertical" 
     android:padding="5dp" > 

     <linearLayout> 
      ...content... 
     </linearLayout> 

     <linearLayout> 
      ...content... 
     </linearLayout> 

     <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textMultiLine" 
     android:lines="7" 
     android:gravity="top" /> 

    </linearLayout> 
</ScrollView> 

EditText字段位於父ScrollView內的父linearLayout內。它在屏幕上看起來很好,但是當我在編輯文本字段中通過第7行時,我不得不使用軌跡球回到文本字段。滾動屏幕將滾動整個屏幕。任何人都可以給我一些提示嗎?我試着對類似的問題實施不同的建議,但沒有人給我正確的答案。謝謝

+1

我不是你的問題清楚,如果你想讓它繼續成長刪除:'機器人:行=「7」'。 – Sam

+0

@Sam那麼如何讓editText框保持特定的大小?我不希望它是一個很小的盒子我想這是一個大箱子開始與 – adohertyd

+0

你試過'安卓minHeight'和'機器人:minWidth'? – Sam

回答

12

正如@tozka在評論中指出的那樣,在佈局文件中指定:android:minLines=""而不是android:lines=""

在Java:editText.setMinLines(int),而不是editText.setLines(int)

在C#(單聲道的Android)editText.SetMinLines(int)代替editText.SetLines(int)

Android docs

public void setMinLines (int minlines)

使TextView的至少這麼多行高。設置此值將覆蓋任何其他(最小)高度設置。