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

お返事ありがとうございます。私はすでにこれを試して、それは動作しますが、これは 'ハッキリ'と思われます。私はこれが起こっている理由も探しています。 – Aleksandar

関連する問題