更改方向时,可以看到/看不到Android图像

时间:2013-07-11 15:22:30

标签: android imageview scrollview android-framelayout

我在使用ScrollViewImageView时遇到了一些问题。

我想要的是:

我总是在屏幕顶部设置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
你能帮帮我吗?提前谢谢。

1 个答案:

答案 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调用它。 Scroll之一)只能看到并使用。