2012-06-05 33 views
5

Tôi có một bố trí với một hình ảnh ở phía trên, một EditText ở giữa và một nút một số khoảng cách dưới nó, như vậy:Làm cách nào để đảm bảo hiển thị chế độ xem cụ thể khi bàn phím xuất hiện?

Example layout

Khi người dùng gõ vào EditText, tôi muốn pan cách bố trí sao cho "Go" nút vẫn còn nhìn thấy, thậm chí nếu điều đó có nghĩa là cắt ảnh ra khỏi đầu, như vậy:

Wanted layout

tôi biết về windowSoftInputMode="adjustPan" trong biểu hiện, nhưng điều đó không wor k bởi vì nó chỉ kéo đủ xa để EditText hiển thị. Có cách nào để chắc chắn rằng nó vẫn mở cho đến khi nút được hiển thị?


Đối với nhận xét với K_Anas, đây là bố cục của tôi. Nó có tất cả các lề bổ sung và khoảng trống được loại bỏ so với ảnh chụp màn hình đầu tiên, để loại bỏ bất kỳ nguồn nào khác của các vấn đề.

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

    <View 
     android:layout_width="300dp" 
     android:layout_height="150dp" 
     android:layout_alignParentTop="true" 
     android:background="#999"/> 

    <EditText 
     android:layout_width="280dp" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:hint="Sample..."/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Go"/> 

</RelativeLayout> 

Trả lời

2

Nói với hangout nhà phát triển Android và dường như không có cách nào dễ dàng để giải quyết vấn đề này. Sự đồng thuận dường như đang làm lại bố cục thay vì có một API để khắc phục vấn đề.

0

Tôi chắc chắn đây không phải là cách TỐT NHẤT, nhưng bạn không thể thay đổi thuộc tính bố cục cho nút của mình (thêm/thay đổi lề) và vẽ lại khi nhấp vào văn bản? Sử dụng onClickListener & có thể làm mất hiệu lực nút của bạn.

+1

Rất tiếc, điều đó rất khó - nhưng nó có thể hoạt động. Tuy nhiên, trước khi thử một cái gì đó như thế này tôi muốn bọc tất cả mọi thứ trong một ScrollView và thử làm việc với 'adjustResize'; đó cũng sẽ là một nỗi đau, nhưng có lẽ sẽ dễ dàng hơn. –

+0

(Lý do nó sẽ là một nỗi đau là 'alignParentBottom' trở nên vô nghĩa trong một ScrollView, vì vậy tôi phải làm lại toàn bộ bố cục để giữ một footer view (không phải trong mockups ở trên) luôn ở dưới cùng của màn hình. Tôi cũng phải tìm một cách để chắc chắn rằng khung nhìn đã được định trước đến đúng điểm) –

1

bạn đã thử:

android:windowSoftInputMode="adjustResize" 

trong hoạt động Tag của bạn trong Manifest

thấy những docs trên blog android phát triển

tôi đã cố gắng bố trí của bạn với: android:windowSoftInputMode="stateVisible|adjustResize"

và cho tôi những kết quả này:

enter image description here enter image description here

+0

Đó là những gì mà kế hoạch của tôi B là. Tại thời điểm đó sẽ không làm việc vì đó là tất cả trong một RelativeLayout và không phải là một ScrollView (tôi sử dụng 'alignParentTop' và' alignParentBottom' và như vậy không làm việc trong một ScrollView), nhưng tôi sẽ trao đổi qua đó nếu Tôi phải. –

+0

Xin chào, bạn có muốn biểu đồ của bạn luôn xuất hiện hay không? bởi vì tôi đã thử bố cục của bạn với văn bản chỉnh sửa ở giữa và nút ở cuối bố cục tương đối và đặt như 300x150 dpixdpi imageview trên đầu trang –

+0

Nút này có hiển thị không? Đó là phần khó khăn. Chỉ hiển thị EditText dễ dàng, sử dụng cài đặt "adjustPan". –

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