SwipeRefreshLayout с вложенным RelativeLayout

Здравствуйте, у меня следующий макет

<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" >

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>

        <ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:divider="@color/list_divider"
    android:dividerHeight="1dp"
    android:listSelector="@drawable/list_row_selector"
    android:layout_below="@+id/coupons_header" />

<TextView
    android:id="@+id/header"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:orientation="vertical"
    android:text="Header" />

</RelativeLayout>

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

проблема в том, что когда я прокручиваю вверх, а затем вниз, просмотр списка действует очень странно, вид на следующий экран http://sger.org/image/3D0Y1b0G1m3L

как исправить привязку относительного макета внутри SwipeRefreshLayout

Спасибо


person sger    schedule 07.11.2014    source источник
comment
ты нашел решение? У меня точно такая же проблема   -  person Aitor Ramos Pajares    schedule 16.03.2015
comment
Проверьте этот ответ: stackoverflow.com/a/26296897   -  person elpolta    schedule 03.10.2015
comment
android: clickable = true добавить это в RelativeLayout может работать   -  person AndroidGeek    schedule 17.06.2016


Ответы (1)


Попробуйте добавить android:clickable="true" в RelativeLayout А где android:layout_below="@+id/coupons_header". Ваш coupons_header отсутствует. И вы также можете изменить свой макет, например

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation ="vertical">

<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_container"
android:layout_width="match_parent"
android:layout_height="0dp" 
android:weight = "1">


    <ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:divider="@color/list_divider"
    android:dividerHeight="1dp"
    android:listSelector="@drawable/list_row_selector" />


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

<TextView
    android:id="@+id/header"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:gravity="center"
    android:orientation="vertical"
    android:text="Header" />

</LinearLayout>

Он будет легко работать, и при изменении содержимого ListView вы также можете изменить текст TextView в SwipeRefresh Listener.

person AndroidGeek    schedule 17.06.2016