android NestedScrollView 内存泄漏问题?

首先界面布局大概如下 在一个activity中有一个viewpager 包含了两个fragment在第二个fragment中 又有一个viewpager包含了三个fragment,在第二个viewpager所包含的第一个Fragment xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<!--歌单fragment布局-->
<android.support.v4.widget.NestedScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >

        <RelativeLayout
            android:id="@+id/song_list_head_relative"
            android:layout_width="match_parent"
            android:layout_height="144dp">

            <ImageView
                android:id="@+id/song_list_head_img"
                android:layout_width="96dp"
                android:layout_height="96dp"
                android:layout_centerVertical="true"
                android:layout_marginStart="16dp"
                android:scaleType="fitXY"/>

            <TextView
                android:id="@+id/song_list_jpgd"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="32dp"
                android:layout_toEndOf="@id/song_list_head_img"
                android:drawableEnd="@drawable/ic_fr_song_list_qj"
                android:drawableStart="@drawable/ic_fr_song_list_hg"
                android:gravity="center_vertical"
                android:maxLines="1"
                android:text="精品歌单"
                android:textColor="#ffffff"
                android:textSize="18sp"/>

            <TextView
                android:id="@+id/song_list_playlistname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/song_list_jpgd"
                android:layout_marginStart="16dp"
                android:layout_marginTop="16dp"
                android:layout_toEndOf="@id/song_list_head_img"
                android:gravity="center_vertical"
                android:maxEms="16"
                android:maxLines="1"
                android:textColor="#ffffff"
                android:textSize="16sp"/>

            <TextView
                android:id="@+id/song_list_tag"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/song_list_playlistname"
                android:layout_marginStart="16dp"
                android:layout_marginTop="16dp"
                android:layout_toEndOf="@id/song_list_head_img"
                android:gravity="center_vertical"
                android:maxEms="14"
                android:maxLines="1"
                android:textSize="14sp"/>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/song_list_relative"
            android:layout_width="match_parent"
            android:layout_height="56dp">

            <Button
                android:id="@+id/song_list_relative_type_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:drawableEnd="@drawable/ic_songtype_right_img"
                android:text="全部"
                android:textColor="#707070"/>

            <TextView
                android:id="@+id/song_list_relative_qing_tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_centerVertical="true"
                android:layout_marginEnd="16dp"
                android:clickable="true"
                android:text="轻音乐"
                android:textSize="17sp"/>

            <TextView
                android:id="@+id/song_list_relative_gufeng_tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginEnd="16dp"
                android:layout_toStartOf="@id/song_list_relative_qing_tv"
                android:clickable="true"
                android:text="古风"
                android:textSize="17sp"/>

            <TextView
                android:id="@+id/song_list_relative_huayu_tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginEnd="16dp"
                android:layout_toStartOf="@id/song_list_relative_gufeng_tv"
                android:clickable="true"
                android:text="华语"
                android:textSize="17sp"/>

        </RelativeLayout>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/song_list_rec"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:nestedScrollingEnabled="false"
            android:scrollbars="vertical">
        </android.support.v7.widget.RecyclerView>

    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

当我一旦滑动到这个界面时内存就开始狂飙 同时log显示后台一直在触发GC,但是当我把上面的xml布局代码最外层的NestedScrollView删除掉,其他所有代码都不更改,发现没有产生内存泄漏问题。请大家帮我解答一下问题。。
ps:当发生内存泄漏时 Leakcanary并没有提示。
log GC如下

clipboard.png
memory图片如下

clipboard.png

阅读 2.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题