应该使用哪种布局来显示"页脚"取决于屏幕内容的其余部分

时间:2014-12-12 08:31:16

标签: android

首先,我为标题道歉。我认为很难选择一个更具描述性的标题,但却找不到一个。

我有一个带标题的屏幕(可变长度 - 使用滑动操作栏),中间部分(滚动视图)和显示广告的底部(固定长度)。我可以使用RelativeLayout编写屏幕,但我真正想做的是:

  • 如果滚动视图的内容(中间部分)不够长,无法填满屏幕(包括标题),我想在屏幕底部显示广告
  • 如果滚动浏览的内容+标题比屏幕长,我想在滚动视图的内容下方显示广告,这意味着除非用户滚动到片段的底部。

想象滚动视图的内容为短文本或图像+长文本。对于第一种情况,滚动视图内容将很短,因此我理想地在屏幕底部显示广告,因为我有足够的空间,但如果它的图像+文本,它将大于屏幕高度,因此,我想在用户滚动到底部后显示广告。

我想这样做的原因是,如果屏幕上有用的内容(用户体验),则广告不一定占用空间。

无论如何在没有编写我自己的自定义布局的情况下在android中实现这一点?如果是这样,你会推荐哪种观点?

非常感谢,

1 个答案:

答案 0 :(得分:1)

我不认为有这样的布局。您可以以编程方式执行此操作。 ScrollView始终只有一个孩子,因此您可以通过这种方式获得内容高度:

int contentHeight = scrollView.getChildAt(0).getHeight();

你可以通过这种方式获得窗户高度

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int windowHeight = size.y;

页眉和页脚的高度是固定的,因此您可以通过数学来确定页脚的放置位置。

int totalHeight = heaederHeight + contentHeight + footerHeight
if(totalHeight < windowHeight) {
    // add the footer to the scrollview
} else {
    // add the footer below the scrollview
}

这种方法的缺点是你必须手动完成所有魔法。

我希望这有助于你:)