2013-03-23 37 views
11

Tôi có một dạng dài và khi bàn phím mềm xuất hiện tôi không thể nhìn thấy đáy editTextscuộn lên đến bàn phím mềm

Đây là xml tôi

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" > 

    <TextView 
     android:id="@+id/register_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:text="@string/register" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/register_username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_title" 
     android:layout_centerHorizontal="true" 
     android:text="@string/username" /> 

    <EditText 
     android:id="@+id/register_edit_username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_username" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_username" 
     android:layout_centerHorizontal="true" 
     android:text="@string/password" /> 

    <EditText 
     android:id="@+id/register_edit_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_password" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_password" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:text="@string/confirm" /> 

    <EditText 
     android:id="@+id/register_edit_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_confirm" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_mail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_confirm" 
     android:layout_centerHorizontal="true" 
     android:text="@string/mail" /> 

    <EditText 
     android:id="@+id/register_edit_mail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_mail" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textEmailAddress" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_mail" 
     android:layout_centerHorizontal="true" 
     android:text="@string/phone" /> 

    <EditText 
     android:id="@+id/register_edit_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_phone" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="phone" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_last_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_phone" 
     android:layout_centerHorizontal="true" 
     android:text="@string/last_name" /> 

    <EditText 
     android:id="@+id/register_edit_last_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_last_name" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_first_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_last_name" 
     android:layout_centerHorizontal="true" 
     android:text="@string/first_name" /> 

    <EditText 
     android:id="@+id/register_edit_first_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_first_name" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_alert_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_first_name" 
     android:layout_centerHorizontal="true" 
     android:text="@string/register_alert_pwd" /> 

    <EditText 
     android:id="@+id/register_edit_alert_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_alert_password" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_alert_password_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_alert_password" 
     android:layout_centerHorizontal="true" 
     android:text="@string/register_alert_pwd_confirm" /> 

    <EditText 
     android:id="@+id/register_edit_alert_password_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_alert_password_confirm" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <CheckBox 
     android:id="@+id/register_tou" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_edit_alert_password_confirm" 
     android:layout_centerHorizontal="true" 
     android:text="@string/register_tou" /> 

    <Button 
     android:id="@+id/register_valid" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/register_tou" 
     android:layout_centerHorizontal="true" 
     android:text="@string/confirm" /> 

</RelativeLayout> 

</ScrollView> 

Tôi cũng cập nhật hoạt động của tôi trong manifest

<activity 
     android:name="my name" 
     android:label="@string/title_activity_register" 
     android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" 
     android:windowSoftInputMode="stateVisible|adjustResize" > 
</activity> 

Trong tất cả các bài viết khác, tôi thấy giải pháp là

android:windowSoftInputMode="stateVisible|adjustResize" 

Nhưng nó không hoạt động trong trường hợp của tôi

Cảm ơn

Sửa

Cập nhật mã cuối cùng của tôi

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/register" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fillViewport="true" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/register_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:text="@string/register" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/register_username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/username" /> 

    <EditText 
     android:id="@+id/register_edit_username" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/password" /> 

    <EditText 
     android:id="@+id/register_edit_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:text="@string/confirm" /> 

    <EditText 
     android:id="@+id/register_edit_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_mail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/mail" /> 

    <EditText 
     android:id="@+id/register_edit_mail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textEmailAddress" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/phone" /> 

    <EditText 
     android:id="@+id/register_edit_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="phone" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_last_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/last_name" /> 

    <EditText 
     android:id="@+id/register_edit_last_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_first_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/first_name" /> 

    <EditText 
     android:id="@+id/register_edit_first_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="text" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_alert_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/register_alert_pwd" /> 

    <EditText 
     android:id="@+id/register_edit_alert_password" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:inputType="textPassword" > 
    </EditText> 

    <TextView 
     android:id="@+id/register_alert_password_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/register_alert_pwd_confirm" /> 

    <EditText 
     android:id="@+id/register_edit_alert_password_confirm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:ems="10" 
     android:imeOptions="actionSend" 
     android:inputType="textPassword" > 
    </EditText> 

    <CheckBox 
     android:id="@+id/register_tou" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/register_tou" /> 

    <TextView 
     android:id="@+id/register_condition" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_marginBottom="20dp" 
     android:text="@string/register_read_tou" /> 

    <Button 
     android:id="@+id/register_valid" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:text="@string/confirm" /> 
</LinearLayout> 

</ScrollView> 
+0

sử dụng adjustPan thay vì adjustResize. – Jitendra

+0

Cảm ơn nhưng tôi luôn có cùng một vấn đề – Ajouve

+0

Nếu bạn có một biểu mẫu dài, bạn thực sự nên có nó trong một ScrollView để bắt đầu. Không đảm bảo người dùng của bạn sẽ có chiều cao màn hình để xem tất cả, có hoặc không có bàn phím. Nếu bạn làm điều đó, họ sẽ chỉ có thể cuộn xuống khi bàn phím bật lên. – thomas88wp

Trả lời

7

Ừ .. chế độ toàn màn hình không thay đổi kích thước :) https://stackoverflow.com/a/7509285/1499064

Nếu bạn không sử dụng toàn màn hình các adjustPan và mọi thứ khác sẽ làm việc

+0

cảm ơn đó là công trình – Ajouve

0

Cố gắng thêm video này vào xem di chuyển của bạn:

android:fillViewport="true" 

và tôi nghĩ rằng trong Manifest cài đặt sau đây

android:windowSoftInputMode="adjustResize" 

sẽ thực hiện công việc của mình.

+0

Tôi thêm android: fillViewport = "true" vào chế độ xem cuộn của tôi và cập nhật hoạt động của mình trong tệp kê khai whit chỉ điều chỉnhResize nhưng tôi cũng có cùng vấn đề, tôi không thể cuộn xuống cuối trang bị ẩn bởi bàn phím và tôi không thể cuộn phía trên bàn phím – Ajouve

+0

@ant bạn đã giải quyết vấn đề này? Tôi có cùng một vấn đề? – theiOSDude

+0

@ burrows111 Có mà không cần sử dụng toàn màn hình – Ajouve

1

Bạn có thể thử điều này trong file manifest của bạn:

android:windowSoftInputMode="adjustUnspecified" 

Tôi có trong ứng dụng của tôi đó là trong một ScrollView và nó làm việc cho tôi. Tôi nghĩ rằng đó cũng có thể là giá trị defualt cho windowSoftInputMode nhưng tôi không chắc chắn 100%.

Chỉnh sửa: Đây là phần đầu của số ScrollView, không đổi.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
<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" 
    tools:context=".MainActivity" 
    android:id="@+id/testing"> 

Có thể cố gắng đặt chiều cao LinearLayout của bạn là match_parent.

+0

Ngoài ra, bạn có thể muốn xem xét việc thay đổi 'fill_parent' thành' match_parent'. 'fill_parent' không được chấp nhận trong API 8 và được thay thế bằng' match_parent'. – TronicZomB

+0

Tôi cập nhật tệp kê khai của mình và thay đổi fill_parent thành match_parent nhưng tôi có cùng kết quả – Ajouve

+0

@ant Tôi đã cập nhật câu trả lời của mình. – TronicZomB

Các vấn đề liên quan