2013-06-19 2 views
0

저는 액티비티 안에 ImageView를 가지고 있는데, 사용자가 그것을 클릭하면 뷰 높이가 움직이게되어 전체 화면이됩니다 (다른 뷰는 화면 하단에 숨겨집니다) .ActionBar 슬라이드 업 애니메이션이 실행되는 동안 뷰의 크기 조정

일단 애니메이션이 끝나면 액션 바를 (getSupportActionBar().hide()을 사용하여) 숨기므로 ImageView의 크기를 다시 조정해야만 전체 화면을 다시 볼 수 있습니다.
상위 뷰에서 액션 바를 화면에서 미끄러지는 동안 크기를 얻기 위해 onMeasureonLayout을 오버 라이팅 해 보았습니다.하지만 작동하지 않습니다. 액션 바 끝 부분에 새 크기 만 나타납니다. + 뷰의 높이와 요청한 레이아웃은 다시 레이아웃되지 않습니다 (그래서 화면의 하단에서 다른 뷰를 볼 수 있습니다).

답변

3

귀하의 활동에 setContentView() (으)로 전화하기 전에 requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY)으로 전화하여 ActionBar을 오버레이로 만드십시오. 그런 다음 애니메이션을 실행하면 ImageView의 전체 화면 크기가 ActionBar이됩니다.

당신은 당신이 ImageView 전혀 숨길 전에 뒤에 볼 수하지 않으려면 ActionBar를 숨길 때의 타이밍과 혼란에있을 수 있습니다,하지만 Thread 또는 AsyncTask 비교적 쉽게 수행 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 문제는 ActionBar가 오버레이 모드에있는 것을 원하지 않는다는 것입니다. – qwertzguy

+0

또는 액티비티가 이미 시작된 동안 ActionBar 스위치를 프로그래밍 방식으로 오버레이 모드에서 오버레이 모드로 전환 할 수 있습니까? – qwertzguy

+0

내가 아는 그. 'setContentView'를 호출하기 전에이 기능을 설정해야합니다. – Wenger

관련 문제