28

Tôi đã có bố cục với một số chế độ xem, từ đó một chế độ xem là EditText. Bố cục dễ dàng vừa với một trang, NHƯNG, khi bàn phím mềm tắt, bố cục không cuộn. Dưới đây là một bản tóm tắt về cách bố trí của tôi:Android: ScrollView không cuộn bằng bàn phím ra

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background" > 

    <ScrollView 
     android:id="@+id/ScrollView1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" > 

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

      <CheckBox/> 

      <TextView/> 

      <LinearLayout> 
       <EditText> 
        <requestFocus /> 
       </EditText> 
      </LinearLayout> 

      <TextView/> 

      <LinearLayout> 
       <Spinner/> 
      </LinearLayout> 

     </LinearLayout> 

    </ScrollView> 

    <Button 
     android:layout_alignParentBottom="true" /> 

</RelativeLayout> 

Và trong manifest của tôi, tôi đã tuyên bố các thuộc tính:

android:windowSoftInputMode="adjustResize|stateHidden" 

Có ai biết lý do tại sao nó không hoạt động và làm thế nào để chắc chắn rằng nó không làm việc?

Cảm ơn trước!

+1

cho Android 5, hãy xem bài đăng liên quan này: [Android - điều chỉnh scrollview khi bàn phím lên cho android 5.0 (lollipop)] (http://stackoverflow.com/questions/27167176/android-adjust-scrollview-when- bàn phím-là-up-cho-android-5-0-lollipop) –

Trả lời

28

OK, dường như không thể đặt android:layout_height của ScrollView thành wrap_content. Tôi đặt nó thành match_parent và đặt android:layout_above thành nút ở cuối trang.

Đừng hỏi tôi tại sao, nhưng điều này đã khắc phục được sự cố.

+0

'layout_above' cái gì? –

+5

'layout_above' bất kỳ chế độ xem nào bạn muốn cố định tại đáy của màn hình – Xander

+1

Bạn là người tiết kiệm cuộc sống :) – letronje

35

tôi đã cùng một vấn đề và tôi đã kiểm tra hoạt động của tôi trong biểu hiện, và lý do tại sao nó không được làm việc là vì tôi không sử dụng tài sản này:

android:windowSoftInputMode="adjustResize" 

Bây giờ nó hoạt động tuyệt vời và không có cần phải làm thêm neo.

9

Thêm android:windowSoftInputMode="stateHidden|adjustResize" vào thẻ của bạn trong tệp AndroidManifest.xml. Điều này sẽ làm cho màn hình được thay đổi kích thước sang trái qua không gian sau khi bàn phím mềm được hiển thị. Vì vậy, bạn sẽ có thể cuộn dễ dàng.

+1

Tuyệt vời, nó hoạt động hoàn hảo cho tôi (y) – Rifinio

0

Vấn đề của tôi là với HorizontalScrollView. Trong trường hợp của tôi, tôi đã phải thiết lập HorizontalScrollView tới:

android:layout_width="match_parent" 
android:layout_height="match_parent" 

Và loại bỏ:

android:layout_above="@+id/closeButton" 
android:layout_below="@+id/logo" 

Trong AndroidManifest.xml hoạt động được thiết lập để:

android:windowSoftInputMode="" 

Tôi hy vọng điều này sẽ giúp bất cứ ai đi qua lỗi kỳ lạ này.

0

Cố gắng đặt ScrollView làm bố cục gốc của bạn. Nó hoạt động như sự quyến rũ đối với tôi!

5

Trong trường hợp của tôi, không có nội dung nào ở trên hiệu quả.

Tôi có item name="android:windowTranslucentStatus">true</item> trong chủ đề của mình. Và nó đã được cố định bằng cách thiết lập android:fitsSystemWindows="true" trong bố cục gốc, nơi cuộn của tôi.

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