SwipeRefresLayout是在Android中实现常见的Pull to Refresh模式的标准方法。
在 React Native 应用程序中的常规视图上向下滑动进行刷新
有没有一种方法可以在常规视图上以React Native方式向下滑动以刷新,而不使用FlatList或ScrollView之类的东西?
在android 2.2中使用RecyclerView刷新滚动SwipeRefreshLayout
我的布局有问题,我用 RecyclerView 创建了 SwipeRefreshLayout 。 在 android 4.2.2+ 中一切正常,但在 andorid 2.3.4 中我无法向上滚动,因为在
我有一个 SwipeRefreshLayout 给出空指针异常。我尝试了多种方法来解决该问题,但没有任何效果。我不确定我犯了什么样的错误 我有一个 SwipeRefreshLayout 给出空指针异常。我尝试了多种方法来解决该问题,但没有任何效果。我不确定我犯了什么样的错误 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swiperefresh" android:layout_height="match_parent" android:layout_width="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout> 活动中的 Java 代码 RecyclerView recyclerView; LinearLayoutManager linearLayoutManager; private SwipeRefreshLayout mSwipeRefreshLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSwipeRefreshLayout = findViewById(R.id.swiperefresh); recyclerView = (RecyclerView) findViewById(R.id.recyclerView); mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { loadDataFromServer(); } }); } 日志中的错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.datapanel/com.example.datapanel.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.widget.SwipeRefreshLayout.setOnRefreshListener(android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3086) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3229) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:6981) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.widget.SwipeRefreshLayout.setOnRefreshListener(android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener)' on a null object reference 我也面临着同样的问题。 我通过在 build.gradle 中添加“androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01”来修复它
我在CoordiantorLayout中有一个AppBar和RecyclerView。 SwipeToRefresh 必须全屏,但 RecyclerView 不能向下滚动。 我在 AppBar 中有一个 RecyclerView 和 CoordiantorLayout。 SwipeToRefresh 必须全屏,但 RecyclerView 不能向下滚动。 <com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="128dp"/> </com.google.android.material.appbar.AppBarLayout> <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.coordinatorlayout.widget.CoordinatorLayout> 如何在没有库的情况下在 Coordinator 布局中添加全屏拉动刷新。 您可以在 AppBar 未完全展开时禁用滑动刷新布局,并在 AppBar 完全展开时启用它。 vAppBar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { _, verticalOffset -> vSwipeRefresh.isEnabled = verticalOffset == 0 }) 我添加了 swipetorefresh 顶层,如上面的答案。我用下面的代码解决了向上滚动的问题。感谢穆罕默德雷扎:) recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener(){ @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { int topRowVerticalPosition = (recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop(); swipeRefreshLayout.setEnabled(topRowVerticalPosition >= 0); } @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); } }); 尝试将 SwipeRefreshLayout 设置为根父级,如下所示: <?xml version="1.0" encoding="utf-8"?> <androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="128dp" /> </com.google.android.material.appbar.AppBarLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> 我也面临着同样的问题 然后我用编程解决了它 binding.appbar.addOnOffsetChangedListener { _, verticalOffset -> binding.swipeRefreshLayout.isEnabled = verticalOffset == 0 } 要将 SwipeRefreshLayout 与 CoordinatorLayout 和 FloatingActionButton (FAB) 一起使用,您可以按照以下步骤操作: 更新布局 XML: 打开要添加组件的 XML 布局文件。 包括 <androidx.swiperefreshlayout.widget.SwipeRefreshLayout> 元素作为父布局。 在 SwipeRefreshLayout 内部,包含 CoordinatorLayout 和其他视图。 这是一个例子:<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/swipe_refresh_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" app:popupTheme="@style/ThemeOverlay.MaterialComponents.Light" app:title="My Toolbar" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_anchor="@id/toolbar" app:layout_anchorGravity="bottom" /> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/fab_scroll_top" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_arrow_upward" app:layout_anchor="@id/recycler_view" app:layout_anchorGravity="bottom|end" app:layout_margin="@dimen/fab_margin" /> </CoordinatorLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
背景 谷歌最近发布了其支持库的更新,现在有一个新的“SwipeRefreshLayout”视图。 该视图允许包裹另一个视图,同时支持向下滑动...
SwipeRefreshLayout 指示器没有加载圆形箭头
我在 Activity 内的 Fragment 中使用 SwipeRefreshLayout。当我向下滑动时它工作正常,但是当第一次片段创建和加载数据时。它只有一个空白圆圈,没有动画加载...
SwipeRefreshLayout 向上滚动时阻碍recycleview的滚动
在我的回收视图中,当我在列表中向上滚动时,触发了滑动刷新布局,这阻碍了我的列表向上移动。我浏览了这个博客,但它解决了这个问题......
如何防止RecyclerView在拉动SwipeRefreshLayout时出现重复数据?
我知道这个问题被问了很多遍,我也知道通常情况下的答案,就是arraylist.clear()在拉动SwipeRefreshLayout之前清除arraylist。但在我的情况下,似乎一 ...
刷新视图的动画由于Android中的setAdapter而卡住了。
我有Recycleview的拉动刷新功能,并通过执行拉动刷新,我在Recycleview洗牌记录,现在我的问题是,一旦我设置新的数组到Recycleview通过使用...
我创建了一个小小的安卓应用来查看一个响应式网站。我已经实现了一个拉刷新,它的工作,但当拉刷新它重定向到主页,我把在LoadUrl。如何...
Android页面通过滑动刷新以刷新CoordinatorLayout内部错误
recyclerview一致性错误,第一次刷新工作正常,而第二次刷新得到错误。堆栈中没有行号。
[weakup mSwipeRefreshLayout发送错误后带有片段的Android(Java)ViewPager
我的应用程序的主要活动是使用ViewPager,并使用三个带有片段的标签。每个片段都是带有SwipeRefreshLayout的ListView。如果我的应用程序在后台运行3-5小时,我认为它是从...
我要执行调度,一次刷新数据将花费多少时间(这将称为翻新)。我的课程安排如下:活动。活动中的广播服务,我有...
我想重新调整滑动刷新布局的高度。在应用栏布局中,我们可以通过调用abl.setElevation(elevation);来获得效果。刷卡刷新布局可以吗?
ViewPager2与SwipeRefreshLayout冲突
我正在使用其中包含4个片段的Horizo ntal ViewPager2。每个片段在RecyclerView上都有SwipeRefreshLayout。我面临的问题是,当RecyclerView处于最高位置时,...
Android:CoordinatorLayout和SwipeRefreshLayout
我尝试从新的支持库22.2.0实现自动隐藏工具栏功能。没有SwipeRefreshLayout的情况下工作正常:但是当我重新添加此布局时,工具栏与recyclerview重叠:代码:...
是否可以在XML中设置SwipeRefreshLayout的配色方案?
我正在使用SwipeRefreshLayout。我知道如何动态设置setColorScheme。是否可以在XML中设置SwipeRefreshLayout的方案颜色属性?
当用户在SwipeRefreshLayout中向下滚动时刷新项目
我在RecyclerView上有一个SwipeRefreshLayout,我希望这些项目在用户向下滚动时刷新,而不是每次都从顶部下拉。我需要类似Instagram或Facebook的东西...
SwipeRefreshLayout阻止嵌套RecyclerView中的项目的onClickCallback
我有一个带有嵌套RecyclerView的SwipeRefreshLayout。回收器视图中的每个项目本质上都是一个附有onClickHandler的CardView。我有一个问题,如果...