EditText Multiline Scrollable Problem

C

callstacker

Neues Mitglied
0
Hi,
habe folgendes Problem:
In meinem Detail Screen gibt es ein EditText View.
Der Detail Screen ist recht lange und kann nach unten gescrollt werden.
Das EditText View ist Scrollable.

Möchte ich nun einen Text editieren im EditText Element, ist es nicht möglich im EditText selbst zu scrollen. Egal ob ich das EditText Element berühre oder ein anderes Element im Detail Screen sobald ich scrolle, scrolle ich immer den gesamten Bildschirm und nicht das einzelne EditText in welchem ich den Text gerade editiere.

Hat jemand eine Lösung dafür?
 
Paste mal das XML Layout bitte.
 
Hier das Layout:

Code:
<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="30dp"
        android:paddingTop="30dp"
        android:paddingRight="30dp"
        android:paddingBottom="30dp"
        android:weightSum="1">

......

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/new_recipe_preparation_edit"
            android:gravity="top|left"
            android:lines="8"
            android:paddingTop="10dp"
            android:scrollbars = "vertical"
            android:isScrollContainer="true"
            android:background="@drawable/rounded_edit_text_white" />
......

    </LinearLayout>
</ScrollView>

Ich habe es inzwischen auf diese Weise gelöst:

Code:
editText.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (v.getId() == R.id.new_recipe_preparation_edit) {
                    v.getParent().getParent().requestDisallowInterceptTouchEvent(true);
                    switch (event.getAction() & MotionEvent.ACTION_MASK) {
                        case MotionEvent.ACTION_UP:
                            v.getParent().requestDisallowInterceptTouchEvent(false);
                            break;
                    }
                }
                return false;
            }
        });
 
Geht natürlich auch so.

Deklarativ im XML würde ich das Editfield aus dem Scroll nehmen und es unter den Scroll mit einer bestimmten festen Zeilenanzahl fest reinsetzen.

So als Tip für's Leben: Scroll im Scroll ist immer eine super schlechte Idee bei Android.
 

Ähnliche Themen

A
  • Alex1978
Antworten
4
Aufrufe
820
Alex1978
A
W
  • WuDiDong
Antworten
3
Aufrufe
769
jogimuc
J
H
  • HoustonWeHaveAProblem
Antworten
18
Aufrufe
979
jogimuc
J
Zurück
Oben Unten