Android Fragment详细剖析(二)| CSDN创作打卡

**

1.Fragment和Activity的相互通信2

**
(1)Fragment和Activity互相获取组件
(1.1)Fragment获取Activity的组件
(1.2)Activity获取Fragment的组件

【案例】Activity获取Fragment:Activity中含有一个Button,点击后获取Fragment中TextView的内容。
关键的方式fragment提供了一个getView()获取Fragment对应的视图。
在这里插入图片描述
fragment_a.xml
在这里插入图片描述
在这里插入图片描述
AFragment.java
在这里插入图片描述
activity_main.xml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MainActivity.java
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述
(2.2)Fragment传递数据给Activity
【案例】数据由Fragment产生,点击Fragment中的按钮,将数据传递给Activity
在这里插入图片描述
fragment_c.xml
在这里插入图片描述
在这里插入图片描述
activity_main4.xml
在这里插入图片描述
在这里插入图片描述
CFragment.java
在这里插入图片描述
在这里插入图片描述
MainActivity4.java
在这里插入图片描述
效果:
在这里插入图片描述

1.使用FragmentTabHost实现底部导航

使用场景:
微信:聊天、联系人、朋友圈、我的;
今日头条:新闻、视频、我的
支付宝:首页、口碑、生活、我的等等。
FragmentTabHost是一个容器级别控件,只能作为根节点,需要强制指定相关的id。
【案例】使用FragmentTabHost实现底部导航
思考:
如何加载多个底部选项?
底部选项是一个上图下字,需要创建一个布局模板。
步骤:
(1)设置fragmentTabhost
(2)创建内容区域FrameLayout
(3)创建TabWidget
(4)创建选项卡对应的布局模板tab_item.xml
(5)创建3个fragment
(6)将FragmentTabHost与内容区域绑定
(7)创建TabWidget对应的tabs,并且将fragment与tab对应起来。
1.FragmentTabHost的事件
导航切换事件

fragmentTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
            @Override
            public void onTabChanged(String tabId) {
                //参数表示选项卡的id
            }
        });

作用:在切换导航时,可以观察到导航序号
【案例】选中时点亮图标。
注意:
(1)点亮当前,关闭其他图标(图标变暗)。
(2)第一个选项默认是点亮状态
项目结构:
在这里插入图片描述

修改MainActivity.java,添加相关事件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述
2.使用TabLayout和ViewPager2模拟FragmentTabHost
步骤:
(1)设置布局:上面是ViewPager2,下面是TabLayout
(2)为TabLayout设置选项卡(动态产生)
(3)为ViewPager2设置ViewHolder和Adapter
(4)将TabLayout和ViewPager2关联起来
项目结构:在这里插入图片描述
activity_main2.xml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
page_item.xml
在这里插入图片描述
在这里插入图片描述
MyAdapter.java
在这里插入图片描述
在这里插入图片描述
MainActivity2.java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述
【注意】修改TabLayout样式
在这里插入图片描述
效果:
在这里插入图片描述
代码以图片形式给大家参考和学习一下下,希望大家可以自己操作打一遍,这样理解后手不会生了!
么么叽么么叽么么哒!

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫白媛

老板给个铜板啊!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值