项目框架搭建 FrameLayout+RadioGroup+TableLayout+ 实现复杂界面布局


FrameLayout+RadioGroup+TabLayout+viewpager 实现复杂界面布局






一  前言



viewpager+fragment 的不足


在之前的项目中所采用的是viewpager+fragment 的方式进行的框架搭建实现点击按钮切换不同的页面,不足之处就在于 在某种特殊的场景布局中就显得力不从心,尤其像新闻资讯的首页,以及淘宝购物的首页等,都属于复杂布局,若是采用之前的方式,viewpager里面嵌套viewpager 会发生组件之间冲突的问题,不利于后期的维护


FrameLayout+RadioGrup 布局


   采用这种布局就可以避免上面的问题发生,可以只用一个FrameLayout就可以嵌套多个Fragment而且互不影响,通过Fragment的切换方法就可以切到不同的Fragment,在面对大型的复杂页面布局就可以很好的处理好组件之间的关系  





二 框架搭建准备工作


涉及知识点

   Fragment事务,第三方tablayout库  ,tablayout+viewpager联动,FrameLayout+RadioGroup联动


导入依赖


implementation 'com.android.support:design:27.0.2'




三  框架搭建详细步骤


     1布局搭建
   activity_main.xml
    
 <LinearLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >

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

        <RadioGroup
            android:id="@+id/group"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1"
            android:background="@android:color/darker_gray"

            >
            <RadioButton
                android:id="@+id/btn1"
                android:layout_width="0dp"
                android:checked="true"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:padding="10sp"
                android:textColor="@drawable/fontcolor"
                android:gravity="center"
                android:drawableTop="@drawable/home1"
                android:text="首页"
                />
            <RadioButton
                android:id="@+id/btn2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:textColor="@drawable/fontcolor"
                android:gravity="center"
                android:padding="10sp"
                android:drawableTop="@drawable/govaffair1"
                android:text="排行榜"
                />
            <RadioButton
                android:id="@+id/btn3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:textColor="@drawable/fontcolor"
                android:gravity="center"
                android:padding="10sp"
                android:drawableTop="@drawable/newscenter1"
                android:text="微头条"
                />
            <RadioButton
                android:id="@+id/btn4"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值