Как сделать прокрутку вверх в представлении списка, когда появляется клавиатура

Я хотел бы знать, есть ли способ сделать это в Android, как этот вопрос. Я использовал ListView и добавил в него EditText. У меня такая же проблема, как и выше вопрос. Я не могу найти ответ в андроиде.

Спасибо.


person user1156041    schedule 19.07.2013    source источник
comment
Я не могу найти ответ в андроиде. Третья ссылка, найденная при поиске: stackoverflow.com/questions/10599451/   -  person verybadalloc    schedule 19.07.2013
comment
спасибо за вашу ссылку. У меня есть нижний колонтитул на мой взгляд. Когда я меняю ссылку ur, нижний колонтитул находится над клавиатурой. Я хотел бы скрыть панель нижнего колонтитула при появлении клавиатуры.   -  person user1156041    schedule 19.07.2013


Ответы (4)


В своем манифесте попробуйте это

<activity android:name=".MyActivity" android:label="@string/app_name" android:windowSoftInputMode="adjustPan">

</activity>

Вам нужно android:windowSoftInputMode="adjustPan"

Пытаться!

person Harsha Alva    schedule 19.07.2013
comment
У меня есть actionBar, и этот метод прокручивает его где-то вверх за пределами экрана. - person blyabtroi; 10.09.2015
comment
У меня есть editText внутри списка, и поведение странное, при прокрутке текст в editText исчез. - person Budi Mulyo; 27.11.2019

У меня была такая же проблема с клавиатурой, перекрывающей список, но android:windowSoftInputMode="adjustPan" у меня не работал.

Однако android:windowSoftInputMode="adjustResize" сделал это.

<activity android:name=".MyActivity" android:label="@string/app_name" android:windowSoftInputMode="adjustResize">

person Steve L    schedule 02.04.2014

Метод smoothScrollToPosition класса LilstView

person Pulkit Sethi    schedule 19.07.2013

Если это своего рода просмотр списка смс, этого можно добиться, добавив в манифест эту строку:

android:windowSoftInputMode="adjustResize"

и добавление сенсорного прослушивателя для редактирования представления:

myEditView.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {

                myView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        myListView.setSelection(myAdapter.getCount());
                    }
                }, 500);        

            return false;
        }
    });

а также

@Override
protected void onResume()
{

    myEditView.postDelayed(new Runnable() {
                @Override
                public void run() {
                    myListView.setSelection(myAdapter.getCount());
                }
            }, 500);    
    super.onResume();
}
person blyabtroi    schedule 10.09.2015