首先,我为标题道歉。我认为很难选择一个更具描述性的标题,但却找不到一个。
我有一个带标题的屏幕(可变长度 - 使用滑动操作栏),中间部分(滚动视图)和显示广告的底部(固定长度)。我可以使用RelativeLayout编写屏幕,但我真正想做的是:
想象滚动视图的内容为短文本或图像+长文本。对于第一种情况,滚动视图内容将很短,因此我理想地在屏幕底部显示广告,因为我有足够的空间,但如果它的图像+文本,它将大于屏幕高度,因此,我想在用户滚动到底部后显示广告。
我想这样做的原因是,如果屏幕上有用的内容(用户体验),则广告不一定占用空间。
无论如何在没有编写我自己的自定义布局的情况下在android中实现这一点?如果是这样,你会推荐哪种观点?
非常感谢,
答案 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
}
这种方法的缺点是你必须手动完成所有魔法。
我希望这有助于你:)