安卓动态实现课程表,简述方法思路以及布局思路

由于学习需要,最近需要写一个课表来展示爬虫爬取到的相关课程。在网上查阅许多资料后,感觉GridLayout布局并不能很灵活的去使用,因此自己做了一个基于RelativeLayout与LinearLayout的具体课表实现,实现效果如图

课表页面

在这里插入图片描述

选择周数(显示周的布局可自行设定)

在这里插入图片描述
在这里插入图片描述
这里简单介绍一下实现课表布局的原理:
总体布局思路
文字内容如下:

这是显示节数的LinearLayout布局
其中添加9个TextView
并给每个赋值上id,在添加课程的时候可以通过Textview.getMeasuredHeight();获取高,并传递给即将要添加的button,让bitton的高度设置为H节数。
layoutParams.setMargins(0,start,0,0);
可以设置button距离顶部的长度(start = 开始节数
H)
便可以实现动态添加button。

在这里插入图片描述

一共7个数课表显示条(都为relativelayout),设置weight为1,会自动平分灰色的内容。
因此在添加的课程的时候,只需要确定星期几,就往第几条上面添加一个button,在根据课程节数,设置button的高

在这里插入图片描述
个人思路如图,已经可以实现,还可以通过内部代码进行课程判重,但判重代码计算起始宽高、控件高度会因课程的数据结构而异。

  1. 比如你的课程节次定义为:section = “3-4-5”
  2. 根据你的TextView测量的高度为H
    所以你得出的 start 位置就应该是
    start = (Integer.parase(section.split(”-")[0] ) -1 ) * H
    button 高度为 buttonH = H * section.split("-").length

最后欢迎大家提出疑问,指出可以改进的地方。由于项目还在完善,需要代码的可以留言哈

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值