2010-07-29 4 views
2

본질적으로 TextView를 클릭하여 (View.VISIBLE 및 View.GONE을 사용하여) 숨기거나 표시 할 수있는 갤러리 객체 인 사용자 정의보기를 만들었습니다.클릭으로 손실 된 뷰 상태

이 갤러리에있는 이미지에는 사용자 정의 배경 StateListDrawable 선택자가 있습니다. 갤러리의 이미지 상태가 View.GONE에서 View.VISIBLE로 바뀌고 갤러리에서 그려지는 선택기가 기본 드로어 블 (translucent_box) 인 경우를 제외하고는 모두 잘 작동합니다.

내 선택 XML의 항목은 다음과 같습니다

 
<item android:drawable="@drawable/red_box" android:state_pressed="true" /> 
<item android:drawable="@drawable/orange_box" android:state_selected="true" android:state_focused="true" /> 
<item android:drawable="@drawable/blue_box" android:state_selected="true" /> 
<item android:drawable="@drawable/translucent_box" /> 

이상한 것은 startActivity를에 대한 호출에서 반환 후, 상태가 복원 내가 숨기고 다시 갤러리를 보여줄 때까지 모든 것이 잘 표시됩니다 있다는 것입니다.

선택기에서 다른 상태를 추가하고 프로그래밍 방식으로보기를 새로 고치려고 노력하고 있습니다 ... 아무 소용이 없습니다.

아이디어가 있으십니까? 나는 그것이 사소한 것이되어야한다고 확신한다 ...

미리 감사드립니다!

+0

위젯이 표시 될 때 초점을 맞춘/선택한보기를 가져올 수 없습니까? 저장 한 다음 다시보기 상태로 돌아갈 때 다시 적용 할 수 있습니까? – Sephy

+0

나는 그것을하려고 노력하면서 놀았지만 아무 소용이 없었다. 그러므로 질문의 이유. 또한 내가 말할 수있는 것부터 선택된 상태를 설정하는 방법이 있지만 집중된 상태가 아닌 ... – Justin

답변

0

내 경우에 대한 해결책을 찾을 수있었습니다. 그게 최선의 방법인지 모르겠지만 여전히 어떤 행동을 일으키는 지 모르겠지만, 내 갤러리의 어댑터에서 notifyDataSetChanged()를 호출하여 원하는 것을 얻을 수있었습니다.

누구든지 문제를 해결하는 방법에 대한 더 나은 제안 (제 생각에는 다소 과잉이라고 생각되는 것 같습니다) 또는 왜 이런 일이 발생했는지에 대한 설명이 있으면 감사 드리겠습니다 ... 나는 무엇에 대해 매우 궁금합니다. 뒤에 숨어있다.

0

관련성이 확실하지 않지만 View.verifyDrawable을 구현해야합니까? 문서는 언제 그렇게해야하는지 명확하지 않습니다.

startActivity는 기본적으로 애니메이션을 트리거합니다. 이는보기를 올바르게 새로 고치게하는 원인 일 수 있습니다. 이 문제를 해결할 수있는 또 다른 해킹은 빈 애니메이션을 트리거하는 것입니다.

+0

제안 해 주셔서 감사합니다.하지만이 메서드를 재정의 한 후에 디버거와 그 메서드가 호출되지 않습니다. – Justin

관련 문제