ScrollView中的ImageView

时间:2016-04-20 12:38:45

标签: android android-layout android-xml

我有点奇怪的问题。我有ImageView,其中包含NestedScrollView

布局如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:layout_behavior="@string/appbar_scrolling_view_behavior"
  tools:context=".image"
  tools:showIn="@layout/image_activity">

  <ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/image"/>
</android.support.v4.widget.NestedScrollView>

编辑:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:fitsSystemWindows="true"
  tools:context=".image">

  <android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:elevation="0dp"
    android:theme="@style/AppTheme.Base.AppBarOverlay">

    <android.support.v7.widget.Toolbar
      android:id="@+id/toolbar"
      android:elevation="0dp"
      android:layout_width="match_parent"
      android:layout_height="?attr/actionBarSize"
      android:background="?attr/colorPrimary"
      app:popupTheme="@style/AppTheme.Base.PopupOverlay"/>

  </android.support.design.widget.AppBarLayout>

  <include layout="@layout/image_content"/>
</android.support.design.widget.CoordinatorLayout>

我的问题是在安装了4.2.2的设备上,图像与工具栏齐平(这就是我想要的)但是在具有4.1.1的设备上,图像有某种填充从某处产生间隙在图像和工具栏之间查看工具栏的大小:

见下图:

Image with spacing about the image

在这个屏幕上没有任何填充或边距,但由于某种原因4.1.1设备上有这个空间,但在较新的设备上没有间距?

不知道这里发生了什么。我已经绝望地尝试android:align_paddingTop="-56dp",但这并没有解决问题。

P.S。我需要这个屏幕能够滚动,因为图像是一个很长的图像。

1 个答案:

答案 0 :(得分:1)

我相信会发生的是ImageView根据位图高度计算其高度,但由于位图不适合ImageView,因此它会重新调整以适应宽度并垂直居中,这导致了那些空白区域。如果您在android:adjustViewBounds="true"上使用setAdjustViewBounds(true)ImageView,则应根据缩放的位图高度调整其高度。 (注意,在API 16上,视图边界只能缩小,而不能扩展。)