0

Так что я делаю текстовое приложение, чтобы возиться с различными вещами в программировании в андроиде и еще не столкнулся с проблемой, что я не могу найти ответ для онлайн. Я пробовал несколько разных ответов с этого сайта и других форумов по программированию на Android, и ни один из них не работал каждый раз. Есть несколько примеров, которые работают каждый раз, тогда как другие примеры будут работать только один раз. Это единственное, что осталось в приложении, которое мне нужно выяснить для функциональности пользовательского интерфейса.Сделать прокруткуПросмотреть прокрутку вниз, когда мягкая клавиатура появляется в Android?

У меня есть файл макет XML как таковые:

<RelativeLayout 
     android:id="@+id/rlActionBar2" 
     android:layout_width="fill_parent" 
     android:layout_height="44dp" > 
    </RelativeLayout> 

    <RelativeLayout 
     android:id="@+id/rlAddContact" 
     android:layout_width="fill_parent" 
     android:layout_height="44dp" 
     android:layout_below="@+id/rlActionBar2" 
     android:background="@drawable/new_message_background" 
     android:padding="0dp" > 

     <TextView 
      android:id="@+id/tvTo" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="8dp" 
      android:text="@string/text_to" 
      android:textColor="#7F7F7F" 
      android:textSize="17sp" /> 

     <EditText 
      android:id="@+id/txtContact" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@id/tvTo" 
      android:layout_marginLeft="6dp" 
      android:layout_toLeftOf="@+id/btnAddContact" 
      android:layout_toRightOf="@id/tvTo" 
      android:background="#00000000" 
      android:hint="@string/contact_name" 
      android:inputType="textPersonName" 
      android:maxLines="1" 
      android:textColor="#000000" 
      android:textSize="16sp" > 
     </EditText> 

     <Button 
      android:id="@+id/btnAddContact" 
      android:layout_width="28.5dp" 
      android:layout_height="28.5dp" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="3dp" 
      android:layout_marginRight="3dp" 
      android:background="@drawable/add_button" 
      android:padding="0dp" /> 
    </RelativeLayout> 

    <ScrollView 
     android:id="@+id/svMessageView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/rlNewMessage" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@id/rlAddContact" 
     android:background="#DBE2ED" > 

     <LinearLayout 
      android:id="@+id/llMessages" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#DBE2ED" 
      android:isScrollContainer="true" 
      android:orientation="vertical" 
      android:paddingTop="11dp" > 
     </LinearLayout> 
    </ScrollView> 

    <RelativeLayout 
     android:id="@+id/rlNewMessage" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:background="@drawable/messagebar_background" 
     android:gravity="bottom" 
     android:padding="0dp" > 

     <Button 
      android:id="@+id/btnAttatchment" 
      android:layout_width="26dp" 
      android:layout_height="26dp" 
      android:layout_alignBottom="@+id/txtMessageBox" 
      android:layout_marginLeft="6dp" 
      android:background="@drawable/camera_icon" /> 

     <EditText 
      android:id="@+id/txtMessageBox" 
      android:layout_width="253dp" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="6dp" 
      android:layout_marginLeft="6dp" 
      android:layout_marginTop="8dp" 
      android:layout_toRightOf="@id/btnAttatchment" 
      android:background="@drawable/messagebox_background" 
      android:hint="@string/app_name" 
      android:inputType="textMultiLine" 
      android:maxLines="6" 
      android:minHeight="26dp" 
      android:textSize="17sp" > 
     </EditText> 

     <Button 
      android:id="@+id/btnSend" 
      android:layout_width="58dp" 
      android:layout_height="26dp" 
      android:layout_alignBottom="@id/txtMessageBox" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="6dp" 
      android:background="@drawable/send_button" 
      android:text="@string/send_button" 
      android:textAlignment="center" 
      android:textColor="#FFFFFF" 
      android:textSize="14sp" 
      android:textStyle="bold" /> 
    </RelativeLayout> 

</RelativeLayout> 

Моя проблема заключается в получении Scrollview svMessageView автоматически прокручивать до дна каждый раз, когда экранная клавиатура приходит на экран для пользователя тип. В RelativeLayout rlNewMessage перемещается вверх, когда появится клавиатура, а в нижней части svMessageView установлен придерживаться верхней части rlNewMessage и что работает, но я не могу получить svMessageView для прокрутки снизу сам.

Изображения:

После мягких нагрузок клавиатуры (не то, что я хочу): http://imgur.com/8Kptge3

После мягких нагрузок клавиатуры (то, что я хочу): http://imgur.com/BcDcFPY

Если необходима дополнительная информация для вас фигуры вне проблемы, дайте мне знать, и я опубликую его как можно скорее.

ответ

-1

Добавить это в Manifest.xml для Activity и кормить меня

android:windowSoftInputMode="adjustNothing" 
+0

Я вижу, где мой вопрос запутывает то, чего я хочу достичь. Сейчас все работает нормально для приложения прямо сейчас. Мне просто нужно выяснить код, необходимый для прокрутки scrollview в нижней части (чтобы показать последнее сообщение) каждый раз, когда на экран выводится мягкая клавиатура. Я получаю скриншоты для публикации, так как это, вероятно, прояснит мой вопрос. – vlllc

+0

@vlllc, есть ли у вас какая-то тренировка для вашего вопроса ?? cos у меня есть аналогичный вопрос) –

0

Я не проверял, но вы можете попробовать scrollView.fullScroll (View.FOCUS_DOWN); возможно, на прослушивании EditText touch.

+0

Эта привычная работа из-за анимации, которая открывает клавиатуру, будет слишком задерживаться. Хотя вы можете использовать таймер для этого, его очень плохо информированный из-за сброшенных кадров и т. Д. –

Смежные вопросы