我在使用ScrollView
和ImageView
时遇到了一些问题。
我想要的是:
我总是在屏幕顶部设置ImageView
。然后,我有一个ScrollView
,其中包含View
的所有元素,在其中我有另一个ImageView
,当前一个元素未填充时,它会设置在屏幕底部屏幕(通常是大屏幕),当存在Scroll时,它设置在ScrollView
的底部。
我可以使用其他Activities
,但我在一个Activity
中遇到FrameLayout
的问题。
我得到的是:
(请参阅下面的代码)当我设置RelativeLayout
的{{1}}(留在底部的那个)ImageView
时:
height = "wrap_content"
没有真正的尺寸,因为它不适合屏幕。要适应它,Image
应该出现。 - >我不知道为什么它看起来不像其他Scroll
。Activities
出现在屏幕底部。由于其他元素不适合屏幕,ImageView
内会显示Scroll
。当我设置FrameLayout
的{{1}}(保留在底部的那个)RelativeLayout
时(图片的实际高度较小):
ImageView
。没有height = "200dp"
(没有必要,因为可以看到其他元素)。Image
。一个内部Scroll
用于元素,另一个用于查看Scrolls
。以下是我的代码:
FrameLayout
你能帮帮我吗?提前谢谢。
答案 0 :(得分:0)
我找到的解决方案,that question,是:
创建该功能:
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
并使用我的ListView调用它。 1}}(Scroll
之一)只能看到并使用。