문제

초상화의 기본 레이아웃 (초상화로 고정)이있는 응용 프로그램이 있으며 텍스트를 입력 할 곳이 하나 있습니다. 배경 이미지가 안개가 켜진 상태에서 조경 방향으로 팝업 창처럼 시작하고 싶습니다. 팝업 위젯이 있다는 것을 알고 있지만 텍스트 편집 상자를 회전하기위한 아이디어는 좋을 것입니다. 키보드 슬라이드에 텍스트 상자가있는 새 화면이 표시되는 것처럼 키보드가 미끄러질 때 세로보기 (텍스트 상자 만)로 회전하면 작동합니다.

도움이 되었습니까?

해결책

문제에 대한 가장 쉬운 해결책은 EditText 별도의 dialog 메인 (초상화 고정) 활동 내에서 시작된 테마 활동.

EditText 활동에는 방향이 고정되어 있지 않아야하므로 키보드를 밀 때 예상대로 회전합니다.

텍스트 입력 활동 생성

새 활동을 만듭니다. edittext 뷰와 포함하려는 다른 내용 만 포함됩니다 (아마도 OK / 취소 버튼 및 레이블이 있습니까?). 매니페스트 내에서 테마를 설정했습니다 Theme.Dialog.

<activity android:name="TextEntryActivity" 
          android:label="My Activity" 
          android:theme="@android:style/Theme.Dialog"/>

코그 라운드 활동의 창 속성 (텍스트 입력 대화 상자)의 창 속성을 수정하여 대화 상자 뒤의 활동을 포기하거나 흐리게합니다. 그 안에는 onecreate 메소드 사용입니다 getWindow().setFlags 모든 배경 활동에 흐릿함을 적용합니다.

getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,  
                     WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

텍스트 입력 활동에서 입력 된 값을 시작하고 읽기

사용 startActivityForResult 텍스트 입력 활동을 시작합니다. 그 활동 내에서 setResult 다음에 설명 된 기술을 사용하여 반환 된 의도 내에 입력 한 텍스트 문자열을 반환합니다. 이 게시물.

무시하십시오 onActivityResult 하위 활동에서 결과를 듣는 방법.

키보드에서의 트리거 런치 노출

원할 때마다 텍스트 입력 활동을 시작할 수 있지만 키보드가 노출 될 때 항상 표시하려면이 이벤트를 설명 할 수 있습니다.

추가하여 시작하십시오 android:configChanges 초상화 활동의 매니페스트 항목에 속합니다. 듣기 위해 등록해야합니다 keyboardHidden.

android:configChanges="keyboardHidden"

그 활동 내에서 무시하십시오 onConfigurationChanged 텍스트 입력 활동을 시작합니다.

@Override
public void onConfigurationChanged(Configuration newConfig) {  
  Intent i = new Intent(this,TextEntryActivity.class);    
  startActivityForResult(i, STATIC_INTEGER_VALUE);
}

텍스트 입력 활동을 시작하기 전에 Keyb

키보드가 숨겨져있을 때 동일한 기술을 사용하여 텍스트 입력 활동에서 자동으로 돌아갈 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top