文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android 第十四章 FragmentContainerView

2023-08-17 20:54

关注
  1. FragmentContainerView extends FrameLayout
  2. FragmentContainerView是专门为Fragments设计的自定义布局。它扩展了FrameLayout,因此它可以可靠地处理Fragment 事务,并且它还具有与Fragment 行为协调的附加特性
  3. FragmentContainerView应用作Fragments的容器,通常设置在活动的xml布局
  4. FragmentContainerView将只允许Fragment的Fragment.onCreateView返回的视图。尝试添加任何其他视图将导致IllegalStateException
  5. 对于17以上的API,FragmentContainerView禁用布局动画和转换。否则,应通过FragmentTransaction.setCustomAnimations完成动画。如果animateLayoutChanges设置为true或直接调用setLayoutTransition,则将引发UnsupportedOperationException
  6. 使用退出动画的Fragment 在FragmentContainerView的所有其他Fragment 之前绘制。这样可以确保退出的Fragment 不会出现在视图的顶部。
public class MainActivity extends AppCompatActivity {    private Button btn_First, btn_Second;    private FragmentTransaction fragmentTransaction;    private FirstFragment firstFragment = null;    private SecondFragment secondFragment = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initData();        initClick();        initFragment();    }    private void initView() {        btn_First = findViewById(R.id.btn_First);        btn_Second = findViewById(R.id.btn_Second);    }    private void initData() {    }    private void initClick() {        btn_First.setOnClickListener(v -> {            showFragment(firstFragment);        });        btn_Second.setOnClickListener(v -> {            showFragment(secondFragment);        });    }    private void initFragment() {        fragmentTransaction = getSupportFragmentManager().beginTransaction();        firstFragment = new FirstFragment();        fragmentTransaction.add(R.id.fcv, firstFragment);        secondFragment = new SecondFragment();        fragmentTransaction.add(R.id.fcv, secondFragment);        fragmentTransaction.commit();        showFragment(firstFragment);    }    private void hideFragment() {        if (null != firstFragment) {            fragmentTransaction.hide(firstFragment);        }        if (null != secondFragment) {            fragmentTransaction.hide(secondFragment);        }    }    private void showFragment(Fragment fragment) {        if (null != fragment) {            fragmentTransaction = getSupportFragmentManager().beginTransaction();            hideFragment();            fragmentTransaction.show(fragment);            fragmentTransaction.commit();        }    }}
            

来源地址:https://blog.csdn.net/weixin_43969550/article/details/127880837

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯