EditText上,生长向上
有以下布局
<NestedScrollView>
<LinearLayout>
<TextView/>
<EditText/>
<LinearLayout/>
</NestedScrollView>
此布局都包含在另一个滚动型,这就是为什么我使用的是NestedScrollView。
EditText是带有固定minHeight的多行。目前,如果你超过了高度限制,EditText将会增长,并且NestedScrollView将适应增长。
我正在寻找改变这个EditText向上而不是向下。我尝试了几件事情,但NestedScrollView没有像预期的那样处理向上的增长。
任何帮助,将不胜感激:)
如果我理解你正在尝试做正确,给这一个镜头。
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_centerInParent="true"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="200dip">
<EditText
android:layout_alignParentBottom="true"
android:text="Put something really long here..."
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>
的centerInParent
是不是真的相关,而只是表明它不要紧,它的定位。
当EditText向下增长时,这很好,但我需要向上增长。 – user3213730
感觉就像你试图实现的是一个可滚动的edittext,其焦点总是在底部。所以,也许你可以尝试给你的编辑文本TextWatcher和强制滚动到文本更改底部。
将以下内容添加到您的TextWatcher回调中,并查看这是否是您想要的。
nestedScrollView.postDelayed(new Runnable() {
@Override
public void run() {
nestedScrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
});
这是我正在寻找的行为,但不幸的是它不是很流畅。这个实现导致它“跳”了一下。 – user3213730
@ user3213730尝试'''''setSmoothScrollingEnabled()'''在滚动视图上启用它的滚动动画。你也可以在你的Textwatcher内的Edittext上使用'''getLineCount()''来判断实际内容是否被包装或创建了新行。只有在这种情况下,才能让scrollview滚动,以最小化调用来强制滚动 – StoneBird
可能重复https://stackoverflow.com/questions/27698139/how-to-make-android-edittext-expand-vertically-when-full –
@DillonBurton这个问题的答案垂直生长,但它向下增长而不是向上。滚动视图还增加了另一层复杂性。 – user3213730
检查[这一个](https://stackoverflow.com/questions/12593747/have-android-edittext-extend-upwards-instead-of-downwards)那里只有一个答案,但他似乎回答了他自己的问题。 –