2017-10-09 7 views
1

아키텍처 구성 요소를 실행하는 간단한 응용 프로그램이 있습니다. 라이브러리의 최신 업데이트 ("Beta2") 이후, 관찰 대상이 트리거되지 않는 문제가 발생했습니다 (단편에서 활동에서 동일한 코드가 작동 함)Android 아키텍처 구성 요소 - 관찰 가능하지 않음

다음은 현재 작동하지 않는 샘플입니다. .

class SampleFragment : Fragment() { 

    private var isDataReady = MutableLiveData<Boolean>() 

    private val registry = LifecycleRegistry(this) 

    override fun getLifecycle(): LifecycleRegistry = registry 

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, 
          savedInstanceState: Bundle?): View? { 
     return inflater.inflate(R.layout.fragment_main2, container, false) 
    } 

    override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { 
     super.onViewCreated(view, savedInstanceState) 

     fab.setOnClickListener { _ -> 
      isDataReady.postValue(true) 
     } 
     isDataReady.observe(this, Observer { 
      Snackbar.make(fab, "Hello!", Snackbar.LENGTH_LONG).show() 
     }) 
    } 
} 

내가 무엇을 놓쳤습니까?

도움 주셔서 감사합니다.

+0

참조이 당신을 도움이된다면 :. HTTPS ://stackoverflow.com/questions/45889604/livedata-is-not-updating-its-value-after-first-call – joao86

+0

감사합니다. LifecycleFragment를 사용하는 한 이전에는 작동했지만 이전에는 사용되지 않으며 논리가 다음으로 변경되었습니다. 조각 (지원 라이브러리 v26). 여전히 문제가 있습니다. ( – colletjb

+0

베타 2로 이전하지 않았습니다. 시도해보고 여전히 작동하는지 확인합니다. – joao86

답변

0

나는 마침내 위의 문제에 대한 해결책을 알아 냈습니다.

우리가 단편에 있기 때문에, 나는 활동을 관찰해야합니다. (그것은 "이"해야하지만 지금까지 작동하지 않습니다

isDataReady.observe(activity, Observer { 

나는 그것이 임시 수정 같아요 ... 당신의 도움을

감사