1帧中的2个片段

问题描述:

我有1个帧和2个片段用于后台堆栈,但我遇到了问题。 如果我将片段2添加到框架并添加到Backstack。我可以点击片段2上的同一个地方,但效果在片段1上。我该如何解决这个问题?非常感谢!1帧中的2个片段

Fragment1.java

public class Fragment1 extends Fragment { 
@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_1,container,false); 
    Button b = (Button)view.findViewById(R.id.btn1); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getActivity(),"FR1",Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    return view; 
} 

} BackstackActivity

public class BackstackActivity extends AppCompatActivity { 
private Button btnFrag; 
@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_backstack); 
    btnFrag = (Button) findViewById(R.id.btn_replace_fragment); 

    btnFrag.setOnClickListener(new View.OnClickListener() { 

     @Override 

     public void onClick(View view) { 

      addFragment(new Fragment2()); 
      Log.e("Replaced fragment", "2"); 
     } 

    }); 
    replaceFragmentContent(new Fragment1()); 
} 
protected void replaceFragmentContent(Fragment fragment) { 

    if (fragment != null) { 

     FragmentManager fmgr = getSupportFragmentManager(); 

     FragmentTransaction ft = fmgr.beginTransaction(); 

     ft.replace(R.id.container_body, fragment); 

     ft.commit(); 

    } 

} 
protected void addFragment(Fragment fragment) { 

    FragmentManager fmgr = getSupportFragmentManager(); 

    FragmentTransaction ft = fmgr.beginTransaction(); 

    ft.add(R.id.container_body, fragment); 

    ft.addToBackStack(fragment.getClass().getSimpleName()); 

    ft.commit(); 

} 

}

+0

添加你的'fragment2'的类细节。 – codeFreak

在你fragment2布局XML文件中设置你的根布局clickable="true"

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:clickable="true" 
    android:background="#ffffff" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
+0

谢谢你很多:)) –

+0

@tuấnvũhữu您的欢迎。请接受我的答案,如果它可以帮助你:) – SiSa