FrameLayout页面切换(事务管理)

android 之ViewPager左右滑动切换界面 NULL 博文链接:https://fuchangle.iteye.com/blog/1876429 立即下载

我的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".HomeActivity">

    <FrameLayout
        android:id="@+id/home_frameLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="9.5"></FrameLayout>

    <RadioGroup
        android:id="@+id/rg_RadioGroup"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@mipmap/bg_homepage_bottom"
        android:gravity="center"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/rb_home"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:checked="true"
            android:drawableBottom="@drawable/selector_home"
            android:gravity="center" />

        <RadioButton
            android:id="@+id/rb_circle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableBottom="@drawable/selector_circle"
            android:gravity="center"/>

        <RadioButton
            android:id="@+id/rb_shoppingCart"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableBottom="@mipmap/tab_gwc"
            android:gravity="center" />

        <RadioButton
            android:id="@+id/rb_orderForm"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableBottom="@drawable/selector_orderform"
            android:gravity="center" />

        <RadioButton
            android:id="@+id/rb_mySelf"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableBottom="@drawable/selector_myself"
            android:gravity="center" />
    </RadioGroup>
</LinearLayout>

主页面:


public class HomeActivity extends AppCompatActivity {

    @BindView(R.id.home_frameLayout)
    FrameLayout frameLayout;
    @BindView(R.id.rb_home)
    RadioButton rbHome;
    @BindView(R.id.rb_circle)
    RadioButton rbCircle;
    @BindView(R.id.rb_shoppingCart)
    RadioButton rbShoppingCart;
    @BindView(R.id.rb_orderForm)
    RadioButton rbOrderForm;
    @BindView(R.id.rb_mySelf)
    RadioButton rbMySelf;


    private FragmentManager supportFragmentManager;
    private Unbinder unbinder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        //注册ButterKnife
        unbinder = ButterKnife.bind(this);

        //开启事务管理器
        supportFragmentManager = getSupportFragmentManager();
        //添加Fragment
        FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.home_frameLayout, new HomeFragment()); //默认显示的页面
        fragmentTransaction.commit();
    }
    @OnClick({R.id.rb_home, R.id.rb_circle, R.id.rb_shoppingCart, R.id.rb_orderForm, R.id.rb_mySelf})
    public void OnClick(View view) {
        switch (view.getId()) {
            case R.id.rb_home:
                //添加Fragment
                FragmentTransaction homeTransaction = supportFragmentManager.beginTransaction();
                homeTransaction.replace(R.id.home_frameLayout, new HomeFragment());
                homeTransaction.commit();
                break;
            case R.id.rb_circle:
                //替换Fragment
                FragmentTransaction circleTransaction = supportFragmentManager.beginTransaction();
                circleTransaction.replace(R.id.home_frameLayout, new CircleFragment());
                circleTransaction.commit();
                break;
            case R.id.rb_shoppingCart:
                //替换Fragment
                FragmentTransaction shoppingCartTransaction = supportFragmentManager.beginTransaction();
                shoppingCartTransaction.replace(R.id.home_frameLayout, new ShoppingCartFragment());
                shoppingCartTransaction.commit();
                break;
            case R.id.rb_orderForm:
                //替换Fragment
                FragmentTransaction orderFormTransaction = supportFragmentManager.beginTransaction();
                orderFormTransaction.replace(R.id.home_frameLayout, new OrderFormFragment());
                orderFormTransaction.commit();
                break;
            case R.id.rb_mySelf:
                //替换Fragment
                FragmentTransaction mySelfTransaction = supportFragmentManager.beginTransaction();
                mySelfTransaction.replace(R.id.home_frameLayout, new MySelfFragment());
                mySelfTransaction.commit();
                break;
            default:
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unbinder.unbind();
    }
}

FrameLayout+底部栏切换 FrameLayout+底部栏切换,实现点击切换界面的效果 立即下载

相关推荐

游戏开发实战:5种AOI算法对比(九宫格 vs 灯塔 vs 十字链表)

本文深入对比了游戏开发中五种主流AOI算法(九宫格、灯塔、十字链表等)的性能与适用场景,帮助开发者根据项目规模选择最优解决方案。通过详细的技术分析和实战数据,揭示不同算法在万人同屏等极端场景下的表现差异,为MMORPG等大型多人在线游戏提供关键性能优化指南。

weixin_29268385的博客 474

android中的Fragment控件实现部分页面的切换

在andorid中,我们可以写两个页面,LoginActivity页面和RegisterActivity页面,然后把两个页面关联起来就可以实现登录和注册的切换了,但是这样的页面看起来不是很美观,那么,我们如何可以把页面做的更美观一点呢,在此,我们就可以通过Fragment来实现。这样,我们就完成了两个fragment页面的ui设计。由于我们注重于fragment的编写,所以我们的页面ui就写的潦草一点。因为我们只写fragment页面,所以我们就不写点击事件了。具体的ui设计可以根据自己的要求来写。

m0_74289031的博客 1542

2019年上交电院计算机直博保研经历

本人选报的是上交六月一日在武汉举办的直博选拔,五月三十一日到达酒店,地点在武汉大学旁边(PS:上交是不管住宿、来回车票的,~划重点~包括夏令营),入住后当然是紧张的准备英语面试等等内容了,当天我是排在了下午面试,感觉还很好,上午可以多睡一会,最好能够去踩踩点上午,然后下午面试一定要早去,说是一点开始,但是老师十二点半就开始让学生进去了,有一个同学排在第二个,但是当时叫到他时还不到一点,没到,最后据...

LifeMaker的博客 4893

Fragment动态增加、删除、替换

在Activity中加入Fragment ①自定义要添加的Fragment类继承自Fragment类 class LeftFragment : Fragment(){ override fun onCreateView(inflater : LayoutInflater,container : viewGroup?, savedInstanceState : Bundle?):View?{ return inflater.inflate(R.layout.left_fragment,contai

Waterkin的博客 1430

【RandLA-Net实战】从零构建隧道点云数据集并训练大场景语义分割模型

本文详细介绍了如何使用RandLA-Net构建隧道点云数据集并进行大场景语义分割模型训练。从数据采集、标注到模型训练与优化,提供了完整的实战指南,特别针对隧道场景的特殊挑战提出了解决方案。通过实际案例展示了RandLA-Net在处理大场景点云数据时的高效性和准确性,为隧道巡检等工程应用提供了可靠的技术支持。

weixin_30485379的博客 115

《供应链金融风控模型设计:多维度数据整合与动态风险预警机制》

注:方案突出供应链金融「三流合一」(资金流、物流、信息流)的风控逻辑,通过多维度数据整合与动态预警,解决传统风控中中小企业信用评估难、链条风险传导监测滞后的问题。◦ 构建供应链拓扑图,计算「核心企业违约对上下游企业的影响系数」(如某电子厂商违约时,其前五大供应商的风险权重自动提升40%)• 区块链应用:将核心企业应付账款上链存证,防止「一票多融」欺诈(如某供应商用同一应收账款在多家银行融资)◦ 财务数据:核心企业审计报告、上下游企业纳税数据(增值税发票频次/金额)

2501_91651383的博客 1549

android局部布局替换,android – 用fragment和framelayout替换另一个片段和framelayout的布局...

编辑:所以在下面的评论之后,我重新审视并意识到是什么让我失望.想象一下,我的客户列表和客户详细活动可以通过以下方式启动public class ClientsMainActivity extends FragmentActivity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInst...

weixin_34187444的博客 626

AD7920实战:从咪头到ADC的音频信号采集电路设计全解析(附电路图)

本文详细解析了基于AD7920 ADC芯片的音频信号采集电路设计全流程。从驻极体咪头的驱动、AD8542运放的两级增益与偏置设计,到关键的抗混叠滤波器配置,以及ADC接口的驱动缓冲与PCB布局要点,提供了完整的实战指南与电路图,帮助开发者实现高质量音频信号采集。

red88的博客 803

利用FrameLayout连接一组view实现流畅的左右滑动

前段时间在网上找到一个左右滑动的例子,广泛使用在uc,墨迹天气等知名软件中,网上实现了一个布局的类(具体代码详见附件),继承FrameLayout,声明如下: public class FlingGallery extends FrameLayout; 该类声明的变量如下: privateintmGalleryWid...

weixin_33697898的博客 333

CLAHE 算法学习 matlab

概念可参考: CLAHE (Contrast Limited Adaptive Histogram Equalization)算法学习CLAHE具体实现主要包括6个步骤。1):分块。将输入图像划分为大小相等的不重叠子块,每个子块含有的像素数为M。参考示例为8×8块。 2):计算子块直方图。 3):计算剪切阈值clipLimit 4):像素点重分配。对每个子块,使用步骤三中多余的像素重新分配。 5):直方图均衡。 6):像素点灰度值重构。(源码中采用了双线性插值) http://www.realtimer

baidu_34971492的博客 4253

uniapp:人脸识别功能,已测试,直接复制源码,支持H5,APP安卓。不依赖任何js,SDK。

uniapp人脸识别功能,已测试可直接复制源码,支持H5,APP安卓。不依赖任何js,SDK。 APP效果图:

sunluyi的博客 2226

FrameLayout占位与fragment页面联动

&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;amp;gt; &amp;amp;lt;FrameLayout android:id=&amp;quot;@+id/fl&amp;quot; android:layout_width=&amp;quot;match_parent

weixin_44210659的博客 681

S7-1200 PN与G120变频器控制起停及调速PROFINET实现详解

S7-1200 PLC与G120变频器通过PROFINET通信可实现高效、实时的电机控制。2. 《S7-1200与G120 CU250S-2PN的PROFINET通讯指南》- 控制器:S7-1200 PLC (如1214C DC/DC/DC)- 变频器:G120 CU250S-2PN (带PROFINET接口)- 输出区(PZD1-2):控制字(16位)、速度设定值(16位)- 输入区(PZD1-2):状态字(16位)、实际速度值(16位)- P922=1:选择报文类型为"标准报文1 (PZD2/2)"

电工 1867

使用FrameLayout显示Fragment两个页切换

布局用一个 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/...

Android_Mr_Zhao的博客 2490

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android 导航栏点击后切换同一个Fragment的同时更换背景

switchFragment(INDEX.A)具体就是使用FragmentTransaction来进行Fragment的事务管理

p65_f的博客 879

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android中Fragment的使用,通过使用帧布局FrameLayout设置页面布局,并设置button按钮事件监听等

Activity_Fragment package com.example.myapplication_one; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import andr

hey,欢迎浏览我的博客,希望能给你提供帮助。 3560

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Fragment专辑(二):Fragment的简单用法

在上一篇中简单介绍了Fragment,现在来一个简单的用法用法Fragment需要与FrameLayout结合使用,FrameLayout起到了容器的作用。首先我们要在布局中使用FrameLayout,设置相应宽高等属性,它就是我们要添加内容的容器,如下面的代码<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="ht

珠穆朗玛小王子的博客 1088

Fragment的简单用法

fragment 简单用法

qq_29443203的博客 471

Android(15) Fragment(动态使用)

效果: 代码: activity_info主布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layo...

郑清 712

学习笔记之———RadioButton + Framgment制作简单框架(二)

前一篇主要是布局的编写,这篇就时java代码的编写 界面编写:学习笔记之---RadioButton+Fragment制作简单框架(一)   为了实现点击按钮出现不同的界面,这里所用到Fragmnet(碎片)   一:准备工作:先创建4个java文件  4个布局文件   这里我用HomePageFragment.java     fragment_homepage.xml  在java文...

棍哥的博客 342

安卓学习总结

安卓学习总结

juzi_ocean的博客 260

TabLayout与ViewPager结合使用

:TabLayout是安卓6.0推出的,可以替代 ViewPagerIndicator 的一个控件,存放在 design 包下,继承自 HorizontalScrollView 。使用TabLayout需要导入依赖 implementation 'com.android.support:design:27.1.1' 整体效果就是外部是一个帧布局切换fragment(消息1.2.3),在消息1的...

weixin_43807869的博客 2502

fragment事物隐藏显示

package com.example.works; import java.util.ArrayList; import java.util.List; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support...

weixin_30376453的博客 120

fragment事物跳转

import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; impor

Genten程泽翔的博客 457

关于fragment的一个实例

在安卓学习过程中,fragment是非常重要的部分,掌握这部分也是很必须的,感觉之前学习的那个实例非常好,所以特意记一下,也算是温故而知新吧。 当然先复习一下fragment的生命周期: onattacth 获得要附着的activity oncreate 创建fragment实例对象 oncreateView 创建出fragment视图,该方法返回一个视图对象(View),这个就

TopWilling的博客 697
上一篇: Glide外部图片简单缓存
下一篇: 一级购物车列表
Android_Mr_Zhao
博客等级 码龄8年 9粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值