0

Я использую SwipeRefreshLayout для обновления содержимого.android.support.v4.widget.SwipeRefreshLayout работает, но не отображается

Проблема в том, что она работает, но не видна при прохождении вниз.

Вот как у меня есть SwipeRefreshLayout в XML-файле:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    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" 
    android:fitsSystemWindows="true" 
    tools:context="com.abc.xyz.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay"/> 

    </android.support.design.widget.AppBarLayout> 

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

    <include layout="@layout/content_main"/> 

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

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@drawable/ic_add_white_24dp"/> 

</android.support.design.widget.CoordinatorLayout> 

Вот это код content_main.xml файла:

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

<RelativeLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    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" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.abc.xyz.MainActivity" 
    tools:showIn="@layout/app_bar_main"> 

    <TextView 
     android:id="@+id/main_txt1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:textSize="17sp"/> 

    <TextView 
     android:id="@+id/main_txt2" 
     android:layout_below="@+id/main_txt1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="xxx" 
     android:textStyle="bold" 
     android:textSize="17sp"/> 

    <TextView 
     android:id="@+id/main_txt3" 
     android:layout_below="@+id/main_txt2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:textSize="16sp"/> 

    <TextView 
     android:id="@+id/main_txt4" 
     android:layout_below="@+id/main_txt3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="xxx" 
     android:textStyle="bold" 
     android:textSize="17sp"/> 

    <TextView 
     android:id="@+id/main_txt_swipetorefresh" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:layout_centerInParent="true" 
     android:gravity="center_horizontal|center_vertical"/> 

    <TextView 
     android:id="@+id/main_txt5" 
     android:layout_below="@+id/main_txt4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:textSize="16sp"/> 

    <TextView 
     android:id="@+id/main_txt6" 
     android:layout_below="@+id/main_txt5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="xxx" 
     android:textStyle="bold" 
     android:textSize="17sp"/> 

    <TextView 
     android:id="@+id/main_txt7" 
     android:layout_below="@+id/main_txt6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:textSize="16sp"/> 

</RelativeLayout> 

Вот как это в Java файл:

swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipetorefresh); 
     swipeRefreshLayout.setColorSchemeColors(Color.parseColor("#00BCD4"), Color.parseColor("#FF9800"), Color.parseColor("#339a60")); 
     swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
      @Override 
      public void onRefresh() { 

       swipeRefreshLayout.setRefreshing(true); 

      } 
     }); 

Пожалуйста, дайте я знаю, что здесь происходит не так?

Извините, если вопрос выглядит плохо отформатированным. Я все еще новичок.

+0

Как это работает? В ScrollRefreshLayout ничего не прокручивается. RecyclerView, NestedScrollView ... Кроме того, у SwipeRefreshLayout должно быть 'app: layout_behavior =" @ string/appbar_scrolling_view_behavior "' на нем. –

+0

@EugenPechanec thee guy говорит о 'SwipeRefreshLayout' не ScrollRefreshLayout –

+0

@HammadNasir Там нет ScrollRefreshLayout, это опечатка, спасибо за указание. –

ответ

-2

Как было предложено skywall, я обернул content_main.xml в NestedScrollView, и это сработало!

Вот отредактированный content_main.xml:

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

<android.support.v4.widget.NestedScrollView 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

<RelativeLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    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" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.abc.xyz.MainActivity" 
    tools:showIn="@layout/app_bar_main"> 

    <TextView 
     android:id="@+id/main_txt1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:textSize="17sp"/> 

    <TextView 
     android:id="@+id/main_txt2" 
     android:layout_below="@+id/main_txt1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="xxx" 
     android:textStyle="bold" 
     android:textSize="17sp"/> 

    <TextView 
     android:id="@+id/main_txt3" 
     android:layout_below="@+id/main_txt2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:textSize="16sp"/> 

    <TextView 
     android:id="@+id/main_txt4" 
     android:layout_below="@+id/main_txt3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="xxx" 
     android:textStyle="bold" 
     android:textSize="17sp"/> 

    <TextView 
     android:id="@+id/main_txt_swipetorefresh" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:layout_centerInParent="true" 
     android:gravity="center_horizontal|center_vertical"/> 

    <TextView 
     android:id="@+id/main_txt5" 
     android:layout_below="@+id/main_txt4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:textSize="16sp"/> 

    <TextView 
     android:id="@+id/main_txt6" 
     android:layout_below="@+id/main_txt5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="xxx" 
     android:textStyle="bold" 
     android:textSize="17sp"/> 

    <TextView 
     android:id="@+id/main_txt7" 
     android:layout_below="@+id/main_txt6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="xxx" 
     android:textSize="16sp"/> 

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

Спасибо, Skywall!

0

ваш SwipeRefreshLayout должен иметь этот флаг app:layout_behavior="@string/appbar_scrolling_view_behavior" вместо внутренней компоновки, а также расположение координатора работает только с вложенными макетами, так что вам лучше пойти с NestedScrollView или RecyclerView или если выбрана API> 21, то setNestedScroll(true)//i'm not really sure about the name.

Смежные вопросы