2011-01-27 4 views
2

내가 가진 것은 사진을 주 배경으로하고 편집 문구와 하단에 일련의 버튼이있는 사진 업로드 활동입니다. edittext를 클릭하면 소프트 키보드가 edittext와 버튼을 밀어 (여전히 볼 수 있도록) 배경 이미지를 동일하게 유지합니다. 그러나 지금은 편집 텍스트의 첫 번째 줄을 볼 수있을 정도로만 밀어 넣고 모든 단추는 숨겨져 있습니다.Android에서 뷰를 소프트 키보드에 연결하려면 어떻게해야합니까?

기본적으로 어떻게 든 뷰를 소프트 키 보드에 첨부하고 나머지 활동은 그대로두기를 원합니다. 내가 manifest에서 windowSoftInputMode 플래그를 설정해 보았지만, 원하는 옵션을 생성하지 않아서 (레이아웃의 크기를 조정하고 팬이 아무런 영향을 미치지 않는 것을 원하지 않음). 이런 식으로 어떻게해야합니까?

+0

상황을 올바르게 이해했는지 확신 할 수 없지만 이미지를 루트 레이아웃 배경 리소스로 설정할 수 없으며 레이아웃의 나머지 부분이 키보드로 위아래로 이동할 수 있지만 크기 조정에 대해 걱정하지 않아도됩니까? – ANemati

답변

1

불행히도 현재 SDK에서는 부드러운 키보드가 나타나고 사라지는 경우보기가 어떻게 작동하는지에 대해 조금은 자비를두고 있습니다. 찾고자하는 동작을 얻는 가장 좋은 방법은 창에 기본 입력 모드를 그대로두고보기에 스크롤 가능한 요소 하나가 있는지 확인하는 것입니다. 키보드가 숨겨져있는 동안 (스크롤 뷰보다 작은 내용)이 요소는 스크롤 할 필요가 없지만 키보드가 나타나면 스크롤 가능한보기의 크기를 축소하고 그 밖의 모든 것을 그대로 둡니다.

다음은 예입니다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
    android:id="@+id/control" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:orientation="vertical"> 
    <EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="A Button"/> 
    </LinearLayout> 
    <ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@id/control"> 
    </ScrollView> 
</RelativeLayout> 

기본적인 활동의 루트 레이아웃으로이 시도하고 안드로이드 크기를 조정하기 때문에 당신이 위 아래로 키보드가 전체 LinearLayout 슬라이드를 볼 수 있습니다 :이 당신의 고해상도/레이아웃/main.xml에있다 가정 해 봅시다 뷰를 위로 밀어내는 대신에 ScrollView의 뷰포트를 사용하면 포커스 된 입력 요소를 볼 수 있습니다 (지금 보았습니다).

+0

답장을 보내 주셔서 감사합니다. 나도 이걸 시도했지만, 볼 수있는 영역보다 큰 경우 배경 이미지가 늘어나고 스크롤 될 수있는 문제가 생겼다. 그게 내가 피하려고하는 것입니다. 키보드로 이미지를 위로 스크롤하면 괜찮습니다. 그러나 키보드가 위로 올라 오지 않으면 아무것도 스크롤 할 수있을만큼 커지지 않기를 바 랍니다. 그래서 이미지가 보이는 공간을 차지하고 더 이상 보이지 않게해야합니다.). 장치의 너비와 높이를 가져 와서 그림 크기를 프로그램 적으로 조정하는 방법이 있지만 꼭 상수를 사용하지 않으려 고합니다. –

+0

코드를 게시 할 수 있습니까? 내가 묘사하는 이미지가 왜 그런 식으로 행동할지 궁금합니다. – Devunwired

+0

장치 너비와 높이를 기준으로 이미지의 크기를 수동으로 조정하기로 결정했습니다. –

관련 문제