我希望有两个.xml
Fragment的布局文件有条件地我想启动一个并在某些事件上更改为其他,尝试搜索Javadoc以查找相关方法,任何指针都会有帮助如何以编程方式添加和删除片段中的视图
回答
您需要创建两个类extends Fragment
类和override onCreateView()
方法并扩大您的布局。例如:
类FragmentOne.java
public class FragmentOne extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
//Inflate the layout for this fragment
return inflater.inflate(
R.layout.fragment_one, container, false);
}
}
类FragmentTwo.java
public class FragmentTwo extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(
R.layout.fragment_two, container, false);
}
}
而在你MainActivity.java
Fragment fr;
if(view == findViewById(R.id.button2)) {
fr = new FragmentTwo();
}else {
fr = new FragmentOne();
}
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_place, fr);
fragmentTransaction.commit();
我可以在创建后更改它吗? – user3833308 2014-10-04 04:53:19
是的,你可以在你需要实现的地方添加MainActivity代码。 – 2014-10-04 04:58:12
谢谢你,我使用swipable视图http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/我想要的是第一个标签我想有3步过程和第二个选项卡应该是少一步,我看到你把片段放入MainACtivity的重点,但我不知道如何将它集成在此示例中 – user3833308 2014-10-04 05:15:20
试试这个..
public class FragmentCont extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
//Inflate the layout for this fragment
if(condition1){
return inflater.inflate(
R.layout.fragment_one, container, false);
}else{
return inflater.inflate(
R.layout.fragment_two, container, false);
}
}
}
可以在创建后更改它吗? – user3833308 2014-10-04 04:54:25
创建后,你必须改变它的活动。在活动中有一个框架布局,并使用片段管理器替换它在这里完成http://stackoverflow.com/questions/7849490/android-adding-fragments-dynamically – Panther 2014-10-04 04:59:17
- 1. 以编程方式将视图添加到片段onCreateView方法
- 2. 如何以编程方式从视图3中删除字段?
- 3. 以编程方式将片段添加到视图组
- 4. 如何以编程方式添加地图片段
- 5. 以编程方式在dojo中添加和删除图标
- 6. iOS - 以编程方式添加/删除子视图
- 7. Android:如何以编程方式在视图中添加视图?
- 8. NSArrayController - 添加:&删除:以编程方式
- 9. 如何以编程方式添加和删除UIToolbaritems?
- 10. 如何在Android中以编程方式删除图片?
- 11. 以编程方式从android中的图像视图中删除背景图片
- 12. 如何以编程方式将视图添加到视图
- 13. 如何以编程方式从NSCustom视图中删除NSButton?
- 14. 如何以编程方式添加按钮以删除WebView?
- 15. 以编程方式添加视图
- 16. iPhone:如何以编程方式删除按钮背景图片?
- 17. 如何以编程方式添加代码片段?
- 18. 如何以编程方式在片段上添加组件?
- 19. 如何以编程方式删除MySQL视图的列?
- 20. 如何以编程方式删除控件的视图状态?
- 21. 如何删除以编程方式添加的customviews?
- 22. 以编程方式从html中删除图像和视频
- 23. 在SWIFT OS X中以编程方式添加和删除NSTextField
- 24. Android以编程方式在linearlayout中添加和删除textview
- 25. 以编程方式将谷歌地图添加到片段
- 26. 如何以编程方式将类名添加到drupal的视图字段中?
- 27. 如何以编程方式在UITableView中添加视图?
- 28. 如何以编程方式删除Drupal中的图像样式?
- 29. 以预编程方式在Android中以编程方式添加视图
- 30. 在片段内以编程方式将视图添加到另一个
使用ViewAnimator或直接致电ViewGroup.addView *()/ ViewGroup.removeView [在]() – pskink 2014-10-04 05:16:46
@pskink大谢谢我一直在寻找这一点,但是当我尝试删除MapView保持灰色方块,并且可以将它删除,任何想法如何刷新视图 – user3833308 2014-10-04 05:29:21
您使用ViewAnimator或直接添加/删除视图?另外如果你在模拟器上运行它,请尝试hierarchyviewer – pskink 2014-10-04 05:59:33