2011-05-24 51 views
12

bố trí của tôi trông như thế này:Buộc adjustPan trong hoạt động chứa scrollview

<RelativeLayout> 
    <RelativeLayout> 
    </RelativeLayout> 
    <ViewFlipper> 
     <ScrollView> 
      <LinearLayout> 
       <EditText /> 
      </LinearLayout> 
     </ScrollView> 
    </ViewFlipper> 
    <RelativeLayout> 
    </RelativeLayout> 
</RelativeLayout> 

Khi tập trung vào EditText ở giữa, bàn phím mềm bật lên như mong đợi, nhưng nó luôn luôn thay đổi kích thước bố trí mặc dù tôi có android:windowSoftInputMode="adjustPan" trong tệp kê khai.

Vấn đề với thay đổi kích thước là chỉ ScrollView co lại, để lại RelativeLayouts ở trên và dưới nó còn nguyên vẹn, mà gần như hoàn toàn có thể che khuất EditText.

Tôi đã thử ẩn RelativeLayouts khi bàn phím được hiển thị (đó là một câu chuyện buồn), nhưng điều chỉnhPan âm thanh phù hợp hơn. Tuy nhiên nó không ảnh hưởng đến hoạt động này.

Làm cách nào tôi có thể buộc adjustPan hoạt động bất chấp sự hiện diện của ScrollView?

Cập nhật:

SO sẽ không cho phép tôi trả lời câu hỏi của riêng tôi, nhưng giải pháp được thiết android:isScrollContainer="false" trên scrollview.

+0

Điều này đã giúp tôi tiết kiệm rất nhiều thời gian. Cám ơn rất nhiều! –

Trả lời

-1

thử điều này trong biểu hiện của bạn là thẻ hoạt động:

android:windowSoftInputMode="stateVisible|adjustPan" 
+5

Theo tài liệu hướng dẫn cho android, bạn không nên sử dụng thẻ điều chỉnh và điều chỉnh lại với nhau. Nó phải là một hoặc khác. – Rise

0

Tốt câu hỏi chủ yếu phát triển làm điều tương tự nhưng đây không phải là một cách chính xác bạn đã cần phải làm. Điều này sẽ giúp bạn.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 


<ViewFlipper> 
    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
     > 
      <EditText /> 
     </LinearLayout> 
    </ScrollView> 
</ViewFlipper> 
<LinearLayout> 

Bạn nên LinearLayout với định hướng như dọc hoặc xem ngang, nơi bạn có bao giờ điều chỉnh vấn đề created.this là rất đơn giản.

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