2013-10-24 71 views
0

我在应用程序中有多个textareas。当我点击那个输入时,键盘弹出(android选项卡)。但textarea保持它在页面上的位置。弹出键盘时如何滚动页面。Softkeyboard隐藏聚焦文本区域:Android

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/scrollView1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:fillViewport="true" > 



<TableLayout 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" > 

    <TableRow 
     android:gravity="center" 
     android:paddingTop="10px" > 

     <TextView 
      android:id="@+id/status" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center" 
      android:layout_span="2" 
      android:text="Registration Form" 
      android:textColor="#000000" 
      android:textSize="15sp"/> 
    </TableRow> 

      <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:id="@+id/firstName1" 
      android:layout_width="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

     <EditText 
      android:id="@+id/firstName" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:inputType="text" 
      android:singleLine="true" 
      android:maxLength="100" 
      android:textColor="#000000" 
      android:textSize="15sp" > 

      <requestFocus /> 
     </EditText> 
    </TableRow> 

    <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:id="@+id/middleName1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:text=" Middle Name :" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

     <EditText 
      android:id="@+id/middleName" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:inputType="text" 
      android:singleLine="true" 
      android:maxLength="100" 
      android:textColor="#000000" 
      android:textSize="15sp"/> 
    </TableRow> 

     <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:id="@+id/lastName1" 
      android:layout_width="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:textColor="#000000" 
      android:textSize="15sp"/> 

     <EditText 
      android:id="@+id/lastName" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:inputType="text" 
      android:singleLine="true" 
      android:maxLength="100" 
      android:textColor="#000000" 
      android:textSize="15sp" > 


     </EditText> 
    </TableRow> 

    <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:text=" ITS Id(Optional) :" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

     <EditText 
      android:id="@+id/itsId" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:inputType="number" 
      android:maxLength="8" /> 

    </TableRow> 
    <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:id="@+id/userName1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

     <EditText 
      android:id="@+id/userName" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:inputType="text" 
      android:singleLine="true" 
      android:maxLength="50" 
      android:textColor="#000000" 
      android:textSize="15sp"/> 

    </TableRow> 


    <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:id="@+id/password1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:textColor="#000000" 
      android:textSize="15sp"/> 

     <EditText 
      android:id="@+id/password" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:inputType="textPassword" 
      android:maxLength="8" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

    </TableRow> 


    <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:id="@+id/confirmPassword1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

     <EditText 
      android:id="@+id/confirmPassword" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:inputType="textPassword" 
      android:maxLength="8" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

    </TableRow> 


    <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:text=" Email :" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

     <EditText 
      android:id="@+id/email" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:singleLine="true" 
      android:inputType="textEmailAddress" 
      android:maxLength="200" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

    </TableRow> 

    <TableRow android:layout_marginTop="20dip" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:text=" Gender :" 
      android:textColor="#000000" 
      android:textSize="15sp" /> 

     <Spinner 
      android:id="@+id/gender" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_weight="1" 
      android:entries="@array/gender_array" /> 

    </TableRow> 
    <TableRow android:layout_marginTop="20dip" > 


     <CheckBox 
      android:id="@+id/profile" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="20dip" 
      android:textColor="#000000" 
      android:textSize="15sp" 
      android:text="Keep Private" /> 



    </TableRow> 

    <TableRow android:layout_marginTop="20dip" > 


     <Button 
      android:id="@+id/save" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:clickable="true" 
      android:onClick="addNewProfile" 
      android:text="Submit" /> 


     <Button 
      android:id="@+id/cancel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:clickable="true" 
      android:onClick="cancelActivity" 
      android:text="Cancel" /> 

    </TableRow> 
    </TableLayout> 
</ScrollView> 


<activity android:label="Registration" android:name="Registration"  android:windowSoftInputMode="adjustPan"></activity>  

我用adjustPan,但这个也不工作。请告诉我softKeyboard应用时如何向上滚动字段?

+0

这是确认密码字段后的注册表,电子邮件字段隐藏在softKeyboard后面,我要直到最后才显示表格。 – user2826275

+0

[this](http://stackoverflow.com/questions/17160818/moving-edit-text-along-with-soft-keyboard-android?answertab=votes#tab-top)对你的问题有个答案 –

回答

1
private final void focusOnView(){ 
    new Handler().post(new Runnable() { 
     @Override 
     public void run() { 
      your_scrollview.scrollTo(0, your_EditBox.getBottom()); 
     } 
    }); 
} 
+0

怎么能我使用这种方法。我用bt不会发生任何事情... – user2826275

+0

发布你的活动。 – Naddy

+0

谢谢!我将一个OnFocusChangeListener添加到屏幕上的EditText字段并设置延迟,以便在显示键盘后屏幕将滚动。 – dazza5000