46

縦にスクロールするように設定されたScrollView内部があります。EditTextしかし、スクロールしません。代わりに、レイアウト全体がスクロールしEditTextます。以下はコードです -

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
    android:id="@+id/b1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="39dp"
    android:text="Title"
    android:textColor="#3bb9ff"
    android:textSize="15sp" />

<EditText
    android:id="@+id/Text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:hint="Title"
    android:singleLine="true" >

    <requestFocus />

</EditText>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Content"
    android:layout_marginTop="50dp"
    android:textColor="#3bb9ff"
    android:textSize="15sp"
   />


<EditText
    android:id="@+id/newTodoText"
    android:layout_width="fill_parent"
    android:layout_height="match_parent" 
    android:minLines="2"
    android:maxLines="7"
     android:hint="Write something"
     android:scrollbars = "vertical" >
</EditText>
<Button
    android:id="@+id/Add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Add" />


</LinearLayout>
</ScrollView>

ID「newTodoText」の EditText がここで問題になっています。

4

12 に答える 12

105
EditText EtOne = (EditText) findViewById(R.id.EditText01);
EtOne.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (v.getId() == R.id.EditText01) {
            v.getParent().requestDisallowInterceptTouchEvent(true);
            switch (event.getAction() & MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_UP:
                v.getParent().requestDisallowInterceptTouchEvent(false);
                break;
            }
        }
        return false;
    }
});
于 2013-12-11T13:42:18.657 に答える
18
mEdtText1.setOnTouchListener(new View.OnTouchListener() { 
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                mScrlMain.requestDisallowInterceptTouchEvent(true);
                return false;
            }
        });

// hear mEdtText1 をエディット テキスト オブジェクトで変更し、mScrlMain をスクロール ビュー オブジェクトで変更すると、確実に機能します。

于 2015-08-05T09:37:07.190 に答える
1
noteEdit.setMovementMethod(new ScrollingMovementMethod());
    ScrollingMovementMethod.getInstance();


    noteEdit.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            noteEdit.getParent().requestDisallowInterceptTouchEvent(true);

            return false;
        }


    });
于 2016-02-01T07:28:17.690 に答える
0
  • ScrollView親のほとんどのレイアウトとして設定しました。そのため、レイアウト全体がスクロールされます。
  • EditText に関する限り、 EditText が成長すると垂直スクロールバーが表示されるandroid:scrollbars = "vertical"ことを意味します。edittext のデータが十分に高い場合にのみ、スクロールバーとスクロール効果が得られます。

お役に立てれば...

于 2013-05-17T09:23:07.530 に答える
0

XML コード

    android:gravity="top"
    android:inputType="text|textMultiLine"
    android:lines="5"

Kotlin には以下のコードを使用します

    editText.setOnTouchListener { v, event ->
        if (v.id == R.id.editText) {
            v.parent.requestDisallowInterceptTouchEvent(true)
            when (event.action and MotionEvent.ACTION_MASK) {
                MotionEvent.ACTION_UP -> v.parent.requestDisallowInterceptTouchEvent(false)
            }
        }
        false
    }
于 2020-08-23T10:26:32.887 に答える
-2

親に「Scroll View」を設定しました。これは、レイアウト全体をスクロールすることを意味します。

特定の「編集テキスト」をスクロールしたい場合は、その編集テキストに別の Scroll ビューを配置する必要があります。

于 2013-05-18T04:13:47.083 に答える