【问题标题】:android.support.v4.widget.SwipeRefreshLayout working but it is not visibleandroid.support.v4.widget.SwipeRefreshLayout 工作但不可见
【发布时间】:2016-07-25 20:22:50
【问题描述】:

我正在使用SwipeRefreshLayout 来刷新内容。

问题是它正在工作,但在向下滑动时不可见。

这是我在 xml 文件中的SwipeRefreshLayout

<?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);

            }
        });

请告诉我这里出了什么问题?

抱歉,如果问题格式错误。我还是个初学者。

【问题讨论】:

  • 它是如何工作的? ScrollRefreshLayout 内没有可滚动的内容。 RecyclerView, NestedScrollView...加上 SwipeRefreshLayout 应该有app:layout_behavior="@string/appbar_scrolling_view_behavior"
  • @EugenPechanec 你说的是SwipeRefreshLayout 而不是ScrollRefreshLayout
  • @HammadNasir 没有ScrollRefreshLayout,打错了,谢谢指出。
  • @EugenPechanec 我将app:layout_behavior="@string/appbar_scrolling_view_behavior" 添加到SwipeRefreshLayout,但它仍然不可见!
  • content_main.xml 的全部内容包装到NestedScrollView

标签: android android-layout android-studio android-xml swiperefreshlayout


【解决方案1】:

你的 SwipeRefreshLayout 应该有这个标志 app:layout_behavior="@string/appbar_scrolling_view_behavior" 而不是内部布局,而且协调器布局只适用于嵌套布局,所以你最好使用 NestedScrollViewRecyclerView 或者如果你的目标 API > 21 然后setNestedScroll(true)//i'm not really sure about the name.

【讨论】:

    【解决方案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>
    

    谢谢,天墙!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      相关资源
      最近更新 更多