在RecyclerView
我正在使用SwipeRefreshLayout
。
刷新工作正常,我得到刷新的数据,但SwipeRefreshLayout
(CardView
,TextViews
,ImageViews
,..)中的图片越来越小刷新。
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();
}
}
截图:
任何想法的家伙?无法弄明白。
答案 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>