【问题标题】:EditText in ScrollView that grows upward向上增长的 ScrollView 中的 EditText
【发布时间】:2017-05-30 01:37:05
【问题描述】:

Demo

有以下布局

<NestedScrollView>
    <LinearLayout>
        <TextView/>
        <EditText/>
    <LinearLayout/>
</NestedScrollView>

此布局全部包含在另一个 ScrollView 中,这就是我使用 NestedScrollView 的原因。

EditText 是多行的,具有固定的 minHeight。目前,如果超过高度限制,EditText 会增长,NestedScrollView 会适应增长。

我希望将此 EditText 更改为向上而不是向下增长。我已经尝试了几件事,但 NestedScrollView 没有按预期处理向上的增长。

任何帮助将不胜感激:)

【问题讨论】:

  • @DillonBurton 这个问题回答了垂直增长,但它是向下增长而不是向上增长。滚动视图还增加了另一层复杂性。
  • 检查this one那里只有一个答案,但似乎他回答了自己的问题。
  • @DillonBurton 我也确实看到了这个答案。我的 EditText 在 ScrollView 中,所以我认为解决方案会有所不同。该答案可能有一些有用的提示,但布局细节非常模糊。
  • 它在NestedScrollView 中的事实不应该对它仍在向下扩展的事实产生任何影响。你试过android:gravity="bottom吗?另外,如果您可以发布代码,我可以为您提供更多帮助。

标签: android android-layout android-edittext


【解决方案1】:

如果我理解您要正确执行的操作,请试一试。

<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 向下增长时,这工作得很好,但我需要它向上增长。
【解决方案2】:

感觉你想要实现的是一个可滚动的编辑文本,其中焦点始终位于底部。因此,也许您可​​以尝试为您的 edittext 提供一个 TextWatcher 并在文本更改时强制滚动到底部。

将以下内容添加到您的 TextWatcher 回调中,看看是否是您想要的。

nestedScrollView.postDelayed(new Runnable() {
    @Override
    public void run() {
        nestedScrollView.fullScroll(ScrollView.FOCUS_DOWN);
    }
});

【讨论】:

  • 这是我正在寻找的行为,但不幸的是它不是很顺利。这个实现让它有点“跳跃”。
  • @user3213730 在滚动视图上尝试setSmoothScrollingEnabled() 以启用其滚动动画。您还可以在 Textwatcher 内的 Edittext 上使用 getLineCount() 来确定内容何时被包装或创建新行。您只能在这种情况下让滚动视图滚动以最小化强制滚动的调用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多