SwipeRefreshLayout中嵌套RelativeLayout或者LinearLayout的异常

来源:互联网 发布:多传感器数据融合改进 编辑:程序博客网 时间:2024/06/06 06:34

今天项目需要写一个界面,大致的布局是SwipeRefreshLayout中嵌套RelativeLayout,代码如下:

<android.support.v4.widget.SwipeRefreshLayout        xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/swipe_refresh_widget"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#fffff5dc"    android:orientation="vertical">        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:paddingBottom="@dimen/activity_vertical_margin"            android:paddingLeft="@dimen/activity_horizontal_margin"            android:paddingRight="@dimen/activity_horizontal_margin"            android:paddingTop="@dimen/activity_vertical_margin"            tools:context="com.xiaoxin.mydemo.MainActivity">            <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="Hello World!" />        </RelativeLayout></android.support.v4.widget.SwipeRefreshLayout>

但是发现下拉刷新时会出现动画被打断现象。

后来发现嵌套LinearLayout也会出现同样的情况。一直没有找到什么原因

最终解决方案是在LineraLayout外面包一层ScrollView ,完美解决问题,具体原因要看源码才能知道,知道原因的朋友也可以告诉我。如下代码:

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/swipe_refresh_widget"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#fffff5dc"    android:orientation="vertical">    <ScrollView        android:id="@+id/content_main"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:fadingEdge="none"        android:overScrollMode="never"        android:scrollbars="none">        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="match_parent"            android:paddingBottom="@dimen/activity_vertical_margin"            android:paddingLeft="@dimen/activity_horizontal_margin"            android:paddingRight="@dimen/activity_horizontal_margin"            android:paddingTop="@dimen/activity_vertical_margin"            tools:context="com.xiaoxin.mydemo.MainActivity">            <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="Hello World!" />        </RelativeLayout>    </ScrollView></android.support.v4.widget.SwipeRefreshLayout>
1 0
原创粉丝点击