Мягкое представление панорамирования, но недостаточно для отображения полного editText - PullRequest
0 голосов
/ 30 июня 2011

У меня несколько сложная компоновка, но в самом низу огромный редакторский текст.Когда я нажимаю на нее, чтобы открыть клавиатуру, все скользит настолько, чтобы точно показать, где печатает пользователь (поскольку пользователь начинает печатать, видна только 1 строка, если пользователь переходит на несколько строк, он перемещается немного больше).показать 2 строки и т. д.).Я хотел бы, чтобы все панорамировалось так, чтобы весь EditText (все пустое пространство) был виден.

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@color/white"
        android:orientation="vertical">

        <EditText
            android:id="@+id/CommentBox"
            android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:textSize="16sp"
            android:layout_marginLeft="6dp"
            android:layout_marginTop="4dp"
            android:background="@color/transparent"
            android:textColor="@color/gray"
            android:gravity="top"
            android:inputType="textMultiLine|textCapSentences|textShortMessage|textAutoCorrect|textNoSuggestions">
        </EditText>
    </LinearLayout>

Бороться с этим уже пару дней, буду признателен за любые предложения.

Лучший способ проиллюстрировать это 3 изображениями

Это то, что весь экранвыглядит так:

This is what the entire screen looks like

Вот как сейчас выглядит поведение

This is what the behavior is right now

Это желаемое поведение

This is the desired behavior

Надеюсь, изображения иллюстрируют мой вопрос.Мне нужно выяснить, как это сделать.Единственный способ заставить панорамирование вида в нужное место - это установить android: сила тяжести внизу, и в этом случае текст будет написан внизу.Это, однако, явно очень странный пользовательский опыт.Мне нужно, чтобы текст был как в обычном текстовом поле.

1 Ответ

0 голосов
/ 02 июля 2011

Был в состоянии взломать решение, которое имитирует то, что я искал.Поместите макет в scrollView, установите параметр AdjustResize вместо AdjustPan.И по нажатию в editText сделал

scrollView.postDelayed(new Runnable() { 
                public void run() { 
                    scrollView.scrollTo(0, scrollView.getBottom()); 
                } 
            } , 250); 

Хотел бы найти нехакерский способ сделать это, но это все, что у меня есть.

...