当前位置: 首页 > 知识库问答 >
问题:

Android:在TextChanged之后滚动不起作用

赖诚
2023-03-14

我有一个ImageView,下面有一个EditText。我希望在查看ImageView时能够写入EditText。EditText此时不可见。有人知道如何实现吗?我用TextWatcher试了一下,但TextChanged后的滚动不起作用。

myImageView.setImageBitmap(myImageBitmap);
TextWatcher textWatcher = new TextWatcher() {
    int xBefore;
    int yBefore;

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        yBefore = myScrollView.getScrollY();
        xBefore = myScrollView.getScrollX();
    }

    @Override
    public void afterTextChanged(Editable s) {
        myScrollView.scrollTo(xBefore, yBefore);
    }
};
myEditText.addTextChangedListener(textWatcher);

xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/myScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<LinearLayout
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="ch.ethz.somr.smartphonebattle.FastestCameraActivity"
    android:orientation="vertical">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/myImageView"
        android:scaleType="fitStart"
        android:adjustViewBounds="true"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/container_input">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/myEditText"
            android:inputType="number"
            android:hint="@string/my_hint"/>

    </LinearLayout>

</LinearLayout>
</ScrollView>

共有1个答案

周墨一
2023-03-14

我发现如果您在TextChanged之后等待一小段时间,我的代码就可以工作,即它可以工作:

Runnable myRunnable = new Runnable() {
    @Override
    public void run() {
        findViewById(R.id.fast_scrollView).scrollTo(xBefore, yBefore);
    }
};

@Override
public void afterTextChanged(Editable s) {
    Handler handler = new Handler();
    handler.postDelayed(myRunnable, 10);
}
 类似资料:
  • 问题内容: 我在Rails应用程序中使用Elasticsearch&Typeahead执行自动完成。我从这里得到了主意 https://shellycloud.com/blog/2013/10/adding-search-and-autocomplete-to-a- rails-app-with-elasticsearch 我已经正确配置了elasticsearch自动完成功能,因为当我直接通过浏

  • 应该修复头部,我不想要整体滚动条,所以我在主体标记中给出了, 我需要垂直滚动条在我的包装div。我怎么才能修好这个? HTML

  • 问题内容: 我有一个MySQL数据库,正在使用。 由于某些原因,我无法使事务正常运行。如果我打电话,它不会回滚。 示例代码: 结果是将另一行添加到myTable。谁能想到一个原因? 问题答案: 您使用的是myIsam还是innodb?据我所知,它仅适用于innodb

  • 我有一个由< code > RealmRecyclerViewAdapter 填充的< code > recycle view ,但不知何故,当数据更改时,没有动画播放。adapter类为不同的布局使用多个< code > view holder ,但这不应该影响动画,对吗? 用于设置 和适配器的代码如下所示: 将数据绑定到适配器的代码如下所述: 自动更新工作正常,但不知何故没有数据更改时没有动画

  • 如果我将单词换行设置为标签,并将其放在任何布局中--除非我将标签放在滚动窗格中,否则单词换行很好。下面是一个例子: 有什么方法可以使文字包装工作在滚动窗格?

  • 问题内容: 在下面的代码中不起作用: 在上面的代码中,我启动了一个检查对象是否不是的对象,并相应地取消了计时器。该对象由某些侦听器在任何时间设置。请参考并提出建议。我在这里做正确的事吗? Gautier Hayoun的解决方案 : 刚刚替代了CountDownTimer,可以从onTick内取消它:Github链接 – Gautier Hayoun 2010年12月12日,1:04 问题答案: G