每次刷新后,SwipeRefreshLayout都会缩小我的视图大小

时间:2016-03-10 17:00:18

标签: java android swiperefreshlayout

RecyclerView我正在使用SwipeRefreshLayout。 刷新工作正常,我得到刷新的数据,但SwipeRefreshLayoutCardViewTextViewsImageViews,..)中的图片越来越小刷新。

XML布局:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 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="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.rssreader.MainActivity"
    tools:showIn="@layout/activity_main">

    <android.support.v4.widget.SwipeRefreshLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/swipe_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


    <android.support.v7.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/recyclerview" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/img_fb"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginBottom="57dp"
        android:src="@mipmap/facebook_icon2" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:id="@+id/img_mail"
        android:src="@mipmap/mail_icon"
        android:layout_alignTop="@+id/img_fb"
        android:layout_toLeftOf="@+id/img_fb"
        android:layout_toStartOf="@+id/img_fb" />

    </android.support.v4.widget.SwipeRefreshLayout>


</RelativeLayout>

MainActivity.java,RefreshListener类:

private class MyRefreshListener implements SwipeRefreshLayout.OnRefreshListener {
        @Override
        public void onRefresh() {
            swipeLayout.setRefreshing(false);
            new ReadRss(getContext(),recyclerView).execute();


        }
    }

截图:

Scaled size

Original size

任何想法的家伙?无法弄明白。

2 个答案:

答案 0 :(得分:2)

感谢@ g20和@MarioVelasco指出了正确的方向,我解决了这个问题。

<强>解答:

  

问题是我的XmlParser内部正在设置一些布局   参数。所以onRefresh()也执行了XmlParser,还有一些   每次刷新都会额外添加边距。

     

我将这些参数移到了我的XmlParser课程之外   适当的地方(例如在初始化后的MainActivity中)   RecyclerView)现在它可以正常工作。

答案 1 :(得分:0)

您可以删除RelativeLayout。也许可以帮到你

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SwipeRefreshLayout 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:id="@+id/swipe_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.rssreader.MainActivity"
    tools:showIn="@layout/activity_main">


    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/img_fb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="57dp"
        android:src="@mipmap/facebook_icon2" />

    <ImageView
        android:id="@+id/img_mail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/img_fb"
        android:layout_marginRight="10dp"
        android:layout_toLeftOf="@+id/img_fb"
        android:layout_toStartOf="@+id/img_fb"
        android:src="@mipmap/mail_icon" />

</android.support.v4.widget.SwipeRefreshLayout>