0

나는 현재 조각을 숨긴 다음 새로운 것을 추가하는 방식으로 내 활동에 조각을 추가하고 있습니다. 내 문제는 내가 새로운 조각을 보여주고 그와 상호 작용하기 시작할 때 이전 조각과 상호 작용한다는 것이다.숨겨진 조각과 상호 작용 - Android

나는 새로운 추가하고 현재의 단편을 숨기기 위해 사용하는 코드는 다음과 같습니다

public void add(int containerViewId, Fragment fragment, boolean addToBackStack){ 
    FragmentTransaction ft = fragmentManager.beginTransaction().hide(currentFragment).add(containerViewId, fragment); 
    if (addToBackStack){ 
     ft.addToBackStack(null); 
    } 
    ft.commit(); 
    currentFragment = fragment; 
    backStackCount++; 
} 

는 무슨 일이 벌어지고, 내가 마지막으로 추가 한 만 상호 작용할 수 있도록하는 방법을 조각을 숨기기 위해? replace은 현재 조각을 제거하고 싶지 않기 때문에 옵션이 아닙니다.

답변

2

나는 또한 비슷한 문제가 있었다. 아마도이 문제가 무엇인지 알 수는 없지만 해결하기 위해 수행 한 작업은 내 조각의 가장 바깥 쪽 레이아웃에 onclick 수신기를 설정하는 것입니다. 조각에서

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/top_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#FFFFFF" 
android:clickable="false" 
android:orientation="vertical" 
tools:context=".Fragments.TopicsFragment"> 

...other components 
</LinearLayout> 

:

LinearLayout topLayout = (LinearLayout) fragmentView.findViewById(R.id.top_layout); 
topLayout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //do nothing 
     } 
    }); 

또한 이전 조각의 mycase 내용도 새 뒤에 표시했기 때문에 내가이 바깥 쪽 레이아웃 배경 #FFFFFF를 추가 한 볼 수 있습니다. 그래서이 문제도 해결되었습니다.

+0

답변 해 주셔서 감사합니다. 나는 이미 이것을 시도하고 그것이 작동하지만, 이것은 'hackish'보인다. 나는 이것이 일어나고있는 이유를 찾고있다. – Aleksandar