2013-07-15 2 views
2

мой вид прокрутки содержит линейный макет, который содержит также некоторые текстовые поля редактирования. теперь, когда я нажимаю на текстовое поле редактирования внизу, появляется мягкая клавиатура, но моя проблема в том, что она покрывает это текстовое поле редактирования. это моя деятельность объявлена ​​в андроида файле манифеста:Прокрутите список прокрутки, который содержит текст редактирования

<activity android:name="me.example.scrollview.LoginActivity" android:label="@string/title_activity_login" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="stateHidden|adjustResize|adjustPan" > </activity>

и вот мой файл layout.xml для этой деятельности.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@android:color/darker_gray" 
tools:context=".LoginActivity" > 

<ScrollView 
    android:id="@+id/login_sv_login_container" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:isScrollContainer="true" 
    android:background="@android:color/transparent" > 

    <LinearLayout 
     android:id="@+id/login_ll_container" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="230dp" 
     android:layout_gravity="center_horizontal" 
     android:background="@android:color/transparent" 
     android:orientation="vertical" > 

     <EditText 
      android:id="@+id/txt_username" 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:layout_gravity="center_horizontal" 
      android:background="@drawable/rounded_edittext" 
      android:ems="10" 
      android:inputType="textEmailAddress" 
      android:maxLines="1" 
      android:singleLine="true" > 

      <requestFocus /> 
     </EditText> 

     <EditText 
      android:id="@+id/txt_phone" 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/rounded_edittext" 
      android:ems="10" 
      android:inputType="phone" 
      android:maxLines="1" 
      android:singleLine="true" /> 

     <EditText 
      android:id="@+id/txt_password" 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/rounded_edittext" 
      android:ems="10" 
      android:inputType="textPassword" 
      android:maxLines="1" 
      android:singleLine="true" /> 

     <Button 
      android:id="@+id/btn_login" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/ic_login" 
      android:text="" /> 
    </LinearLayout> 
</ScrollView> 

Теперь Пожалуйста, помогите мне, как я очень новой для андроида программирования. Я не могу устранить эту проблему и не могу найти способ прокрутки моего представления прокрутки без изменения размера моего главного окна. Мне просто нужно, чтобы мое представление прокрутки делало прокрутку, когда появляется мягкая клавиатура.

enter image description here

ответ

0

Как указывалось ранее, решения могут работать. Но проблема может возникнуть, если edittext находится в нижней части ListView, где он все равно будет закрыт экранной клавиатурой. Не уверен, что прокрутка может быть прокручена до точки, где больше нет содержимого.

Что я видел, что вы могли бы использовать два противоречащих флаги в вашем манифеста:

android:windowSoftInputMode="stateHidden|adjustResize|adjustPan" > </activity> 

adjustResize и adjustPan может IMHO НЕ быть объединены. Попробуйте, как это выглядит, только с помощью adjustResize. Это должно избегать того, что клавиатура закрывает все, что угодно.

+0

Hi Atla, спасибо за ваш ответ. Наконец, это сработало для меня. Спасибо большое. – Raj

0

Вы можете использовать YOURSCROLLVIEW.scrollTo (Int х, Int у) или YOURSCROLLVIEW.smoothScrollTo (INT х, у ИНТ) для перемещения вида прокрутки соответствующих координат так, чтобы редактировать текстовый блок и клавиатура оба показаны.

Более подробную информацию об этих функциях и других функций Scrollview можно найти on the android developer reference page.

+0

Привет MCWhitaker, спасибо за быстрый ответ, но это не помогает и не решает мою проблему. – Raj

+0

Хм, посмотрите на решение atla, если честно, если он работает так, как ожидается, результат будет намного более изящным. Если это не сработает (и это действительно уродливое решение), вы можете иметь невидимые представления под своим edittext и установить их на вид, когда вы нажимаете на свой edittext, а затем перемещаете scrollview. Как я уже сказал, уродливо, но это определенно выполнит свою работу. – MCWhitaker

0

Вы можете попробовать:

ScrollView scroll = (ScrollView)findViewById(R.id.scrollview); 
scroll.scrollTo(0, sv.getBottom()); 

или

scroll.scrollTo(5, 10); 
+0

Thanx Riandy, Но это также не решает мою проблему. – Raj

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