2017-04-14 46 views
2

我在ScrollView內部有一個EditText,其中預先填充了大量文本。它可以是一行或50或更多。此時,EditText是不可編輯的,文本顯示得很好。但是,當我按下一個按鈕以使編輯文本可編輯時,EditText的全部內容將被扔進一條很長的水平滾動線。當帶預填充文本的EditText變爲可編輯時,所有文本都會移動到一行上

你可以看到正是我在這裏談論: https://zippy.gfycat.com/GenerousBigHerring.webm

我怎樣才能防止這種情況發生?現在我一直在使用這個技術。我試過設置線條和maxLines等,但我無法弄清楚。

編輯:

這是我當前的滾動型/ EditText上:

<ScrollView 
    android:id="@+id/result_text_scroll_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/result_title_text" 
    android:layout_above="@+id/result_bottom_sheet" 
    android:layout_marginTop="20dp" 
    android:padding="5dp"> 


    <EditText 
     android:id="@+id/extracted_text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginStart="10dp" 
     android:padding="15dp" 
     tools:text="Hello, World" 
     android:textColor="@color/black" 
     android:textStyle="bold" 
     android:textSize="@dimen/extracted_text_size" 
     android:textIsSelectable="true" 
     android:inputType="none" 
    /> 



</ScrollView> 

從代碼,這裏是我在做什麼,以使能/禁止編輯:

@Override 
public void enableTextEditing() { 
    mExtractedText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 
    mExtractedText.setOnKeyListener(this); 
} 

@Override 
public void disableTextEditing() { 
    mExtractedText.setInputType(InputType.TYPE_NULL); 
    mExtractedText.setOnKeyListener(null); 
} 


@Override 
public boolean onKey(View view, int i, KeyEvent keyEvent) { 
    if (keyEvent.getAction() == KeyEvent.ACTION_DOWN && keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
     //All this does is call the View methods to disable text editing 
     //and close the keyboard. 
     mPresenter.doneEditingButtonPressed(); 
     return true; 
    } 
    return false; 
} 
+0

安置自己的Java和XML代碼,你有什麼到目前爲止已經試過? – FAT

+0

你是否檢查enableTextEditing()是否被調用? –

回答

1

添加android:linesandroid:minLinesandroid:maxLines到您的EditText查看

而且改變android: inputType = "textMultiline"

您可以添加android:scrollbars="vertical"到您的EditText,以及如果你想

相關問題