Dav*_*ton 8 android android-layout android-fragments
我有横向模式的布局,左侧显示ListView,右侧显示FrameLayout.从列表中选择项目时,另一个片段将添加到FrameLayout
MyFragment myFragment = (MyFragment) fragmentManager.findFragmentById(R.id.myFrameLayout);
FragmentTransaction ft = fragmentManager.beginTransaction();
if (myFragment == null) {
myFragment = new MyFragment(uri);
ft.replace(R.id.myFrameLayout, playerFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commitAllowingStateLoss();
}
Run Code Online (Sandbox Code Playgroud)
稍后我在列表视图中按删除并删除列表中的最后一项,我尝试删除片段以便不显示任何内容,但它不起作用,我的片段仍然在屏幕上.删除代码是:
MyFragment myFragment = (MyFragment) fragmentManager.findFragmentById(R.id.myFrameLayout);
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.remove(myFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
ft.commitAllowingStateLoss();
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它没有从视图中删除?
Gru*_*Gru 13
@DaveJohnston我已经尝试过你的代码删除片段我刚刚模塑....谢谢:)
嘿,我不知道这是你的问题的解决方案,但你尝试这种方式它会工作:
添加片段的方法:
YourFragment yourFrament;
//Add your Fragment
public void addYourFragment(){
yourFragment = new YourFragment();
FragmentTransaction transation = getSupportFragmentManager().beginTransaction();
transation.replace(R.id.yourFlowLayout, yourFragment);
transation.commit();
}
Run Code Online (Sandbox Code Playgroud)
删除片段的方法:
//Remove Fragment
public void removeYourFragment(){
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (yourFragment != null) {
transaction.remove(yourFragment);
transaction.commit();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
yourFragment = null;
}
}
Run Code Online (Sandbox Code Playgroud)
您是否在 xml 中声明该片段?引用谷歌的 Dianne Hackborn 的话:
在 XML 中定义片段主要是为了那些会保留下来的东西。如果您要添加和删除,您可能应该始终动态地进行。
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
12034 次 |
| 最近记录: |