如何在多行上方浮动文本视图

时间:2013-02-22 20:08:54

标签: android android-layout

我必须做一个包含行的24小时列表。每行代表一小时。

例如:我在上午6点到10点有活动。我需要一个物体来覆盖那个时期(早上6点到早上10点)。如图所示:

http://img824.imageshack.us/img824/6190/20130221192829.png

我想知道我该怎么做以及我应该使用什么布局?

3 个答案:

答案 0 :(得分:1)

我会使用一个包含24行的ListView,每小时一行,然后编写一个自定义适配器,根据您要突出显示的时间段绘制小时数。 在适配器中,如果小时符合时间段,则只需使getView函数更改行布局背景颜色。

这里有很好的教程for ListViews and Adapters

如果您需要能够标记部分小时数,请假设15分钟间隔,您可以使用这样的自定义行布局:

enter image description here

你有左边小时的TextView占位符,15分钟间隔的4个textViews(背景颜色)和带透明背景的重叠文本占位符。

答案 1 :(得分:0)

另一种解决方案是在滚动视图中简单地设置一个linearlayout,它不像ListView那样灵活的内存消耗,因为所有内容都被加载但是因为你所显示的条目数限制你可以确定加载它需要多少内存。

LinearLayout / ScrollView组合的一大优势是您可以控制布局,而不仅限于将其拟合成一系列线条。与ListView / Adapter组合相比,它更易于理解,因此应该更容易实现。

编辑:

考虑到这一点,LinearLayout可能不是最好的,因为它不允许单个视图重叠多个小时,使用RelativeLayout或TableLayout可能会更好。

答案 2 :(得分:0)

我使用ListView解决了。 首先,我必须获取数据库信息并将其保存在游标中。 然后,我创建了一个带有arrayList的个性化适配器,该arrayList包含一个活动/事件,其中保存了id和活动/事件描述。 每个arrayList位置代表一个小时。光标包含“inicial hour”和“final hour” 如果光标包含数字03作为正式小时,08作为最后一小时,则: - 我必须从头到尾完成带有空值的arrayList。这样,前3个小时将是arrayList的前三个位置 - 然后我必须在inicial小时和最后一小时之间做减法,因为我需要知道该活动/事件中有多少个arrayList位置。 - 在arrayList的第四个位置,我将活动/事件与id和描述放在一起。 - 然后,在下一个位置,我必须放置一个带有id的活动/事件,而不描述许多行和减法结果。 最后,我把arraylist放在个性化适配器中。 我感谢你的帮助。非常感谢! 此致,何塞。