我需要一个看似简单文本编辑器的活动:
全屏EditText,下方有提交按钮。
重要提示:
1. EditText必须垂直和水平滚动
2.仅当用户单击下一行按钮时,输入文本才会转到下一行
3. EditText填充屏幕顶部和按钮之间的整个空间
我的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:fillViewport="true">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<EditText
android:id="@+id/some_edittext"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top|left"
/>
</HorizontalScrollView>
</ScrollView>
<Button
android:id="@+id/submit_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Submit"/>
</LinearLayout>
为什么不好:
EditText AUTOMATICALLY在文本到达行尾时将文本分解到下一行
在我将fillViewport设置为true之前,它工作正常。但是否则EditText不会填满整个屏幕
提前致谢
答案 0 :(得分:2)
EditText
实际上已经内置了滚动功能,因此您不必使用ScrollView
。唯一的问题是它不支持flings。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/some_edittext"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top|left"
/>
<Button
android:id="@+id/submit_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Submit"/>
</LinearLayout>
要停止自动换行,您可以激活水平滚动:
EditText editText = (EditText) findViewById(R.id.some_edittext);
editText.setHorizontallyScrolling(true);
editText.setMovementMethod(new ScrollingMovementMethod());
答案 1 :(得分:0)
我认为你可以设置你的EditText属性android:maxLines =&#34; 1&#34;原来。
当&#34;新线&#34;单击按钮,您可以使用setMaxLines(int)方法以编程方式增加该值。
EditText.setMaxLines(int)
这里是doc - &gt; link
希望这会有所帮助。