建议直接访问原文:滚动到底部或顶部响应的ScrollView使用
本文介绍滚动到底部或顶部响应(如加载更多)的ScrollView的使用。
关于实现原理可见:滑动到底部或顶部响应的ScrollView实现
本文可运行代码地址可见BorderScrollViewDemo,可运行APK地址TrineaAndroidDemo.apk。效果图如下:
BorderScrollView继承自ScrollView,可以自定义滚动到底部或顶部时需要完成的任务。使用如下:
一、自定义layout
只需将定义的ScrollView标签换成cn.trinea.android.common.view.BorderScrollView标签即可,源码如下(其中的多个TextView只是为了将ScrollView撑满一屏幕):
<cn.trinea.android.common.view.BorderScrollView android:id="@+id/scroll_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="@dimen/dp_40" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/top_text" android:layout_width="match_parent" android:layout_height="20dp" android:gravity="center" android:text="top text" /> <TextView android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/top_text" android:gravity="center" android:text="text1" /> <TextView android:id="@+id/text2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/text1" android:gravity="center" android:text="text2" /> <TextView android:id="@+id/bottom_text" android:layout_width="match_parent" android:layout_height="20dp" android:layout_below="@+id/text2" android:gravity="center" android:text="bottom text" /> </RelativeLayout> </com.trinea.android.common.view.BorderScrollView>
2、设置onTop和onBottom事件
通过borderScrollView.setOnBorderListener(OnBorderListener onBorderListener)设置到达底部和顶部的响应。
OnBorderListener有onTop()和void onBottom()两个函数可以实现,分别在滑动到顶部和底部时被调用执行。代码如下:
public class BorderScrollViewDemo extends Activity { private BorderScrollView borderScrollView; private TextView textView1; private TextView textView2; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.border_scroll_view_demo); context = getApplicationContext(); borderScrollView = (BorderScrollView)findViewById(R.id.scroll_view); borderScrollView.setOnBorderListener(new OnBorderListener() { @Override public void onTop() { // may be done multi times, u should control it Toast.makeText(context, "has reached top", Toast.LENGTH_SHORT).show(); } @Override public void onBottom() { // may be done multi times, u should control it Toast.makeText(context, "has reached bottom", Toast.LENGTH_SHORT).show(); } }); textView1 = (TextView)findViewById(R.id.text1); textView2 = (TextView)findViewById(R.id.text2); Display display = getWindowManager().getDefaultDisplay(); textView1.setHeight(display.getHeight() / 2); textView2.setHeight(display.getHeight() / 2); } }
注意onTop和onBottom是有可能被多次执行的,需要自己控制,将在后面的实现原理中介绍具体原因~。
你可能还感兴趣:
scrollview中viewpager无法正常滑动问题
添加ScrollView后或外部容器为RelativeLayout时onFling不起作用,无法滑动问题
Android系统下载管理DownloadManager功能介绍及使用示例
Android性能优化经验总结滚动到底部或顶部响应的ScrollView使用
相关推荐
// 处理滚动到顶部的逻辑 break; case cc::ScrollView::EventType::SCROLL_TO_BOTTOM: // 处理滚动到底部的逻辑 break; case cc::ScrollView::EventType::SCROLL_TO_LEFT: // 处理滚动到左边的逻辑 break; ...
ScrollRespondUtils同样支持ScrollView,使得开发者可以轻松地添加滑动事件监听,例如在ScrollView滚动到底部时触发特定操作,如加载更多内容。 3. **API使用**: ScrollRespondUtils提供的API可能包括`...
(7) 滚动到底部或顶部响应的ScrollView使用 (8) Gallery滑动一页效果 Demo (9) SearchView使用及搜索提示的实现 (10) Service Demo,包括启动service、绑定service、intent service、aidl service (11) ...
这样,当ListView滚动到顶部时,ScrollView会继续滚动,显示其内部的其他内容,而底部的视图始终保持在屏幕下方。 为了进一步优化,我们可以使用Header和Footer的概念来添加额外的视图。ListView允许我们添加头部和...
分页效果的核心在于,当用户滚动到ScrollView的底部时,能够自动加载下一个“页面”或布局,模拟出无限滚动的效果。这在Android开发中称为“无限滚动”或“下拉刷新”。而在这个改良版中,还增加了从下部分到顶部的...
总之,这个"storyboard的scrollview使用小demo"涵盖了如何在Storyboard中设计和配置UIScrollView,以及如何处理滚动事件和实现响应式布局。通过实践这个小demo,开发者可以更好地掌握在iOS应用中集成滚动视图的技巧...
- 顶部到底部的演示 - 自下而上的演示 - 从左到右的演示 - 右侧演示 - 响应GridView演示 - TreeViewWithChildrenIndent演示 特征: - ListView和GridView和TreeView - 无限的项目 - 项目在不同的大小...
6. 为了实现滚动到底部或顶部的效果,可以使用ScrollView提供的scrollTo()或smoothScrollTo()方法。例如,`scrollView.smoothScrollTo(0, 0)`将使ScrollView滚动到顶部。 7. 有时,你可能希望在滚动到顶部或底部时...
3. 使用Headerview和FooterView:如果ScrollView只需要在ListView的顶部或底部添加一些静态内容,可以考虑将这些内容作为ListView的头视图(HeaderView)或尾视图(FooterView)。这样,整个界面看起来就像是一个...
- fullScroll(int direction): 滚动到子视图的最顶部或最底部,类似于用户按下了设备的Home或End键。 - fling(int velocityY): 执行快速滚动操作,其中velocityY指定了滚动速度。 - arrowScroll(int direction): 当...
然而,标准的ScrollView并未内置回弹效果,即在滚动到顶部或底部时,仍然可以继续拉动一段距离,然后视图会回弹到原始位置。这种效果在许多现代应用程序中很常见,可以提供更加直观和有趣的用户体验。 本文将详细...
6. **监听滚动事件**:使用`OnScrollListener`监听ScrollView和ListView的滚动事件,以便在需要时做出相应的响应,例如隐藏/显示顶部或底部的工具栏。 7. **适配器的优化**:优化ListView的Adapter,如使用...
在ListView的`onTouchEvent`中,如果检测到上滑或下滑,且ListView已经滑动到底部或顶部,返回false,将事件交给父视图(ScrollView)处理。 3. **使用NestedScrollView替换ScrollView** 自Android Design Support...
当ListView滚动到底部或顶部时,切换标志,使得ScrollView开始处理滑动。 4. **使用第三方库** 第三方库如`androidx.core.widget.NestedScrollView`(AndroidX库)和`SwipeRefreshLayout`提供了更好的滑动交互体验...
对于Eclipse环境,由于API版本限制,我们可能需要使用`setOnTouchListener`来监听滑动事件,并在事件处理中阻止事件传递到ScrollView。 第二个知识点是适配器的使用。在ListView中,通常需要自定义Adapter来填充...
滚动到底部或顶部响应的ScrollView使用(7) Gallery滑动一页效果 Demo(8) SearchView使用及搜索提示的实现(9) Service Demo,包括启动service、绑定service、intent service、aidl service(10) BroadcastReceiver ...
这个功能使得用户能够轻松快捷地从页面底部返回到顶部,无需手动滚动鼠标或滑动屏幕。下面我们将深入探讨这个功能的实现原理、应用场景以及相关技术。 一、实现原理 1. JavaScript/jQuery实现:最常见的实现方式是...
ScrollView支持滑动事件,可以监听用户的滑动行为,同时还可以设置滚动到底部、顶部等回调函数,实现下拉刷新、上拉加载等功能。在WXViewScrollSwiperDemo中,你可以看到如何配置ScrollView以适应不同场景的需求。 ...
如此一来,当ScrollView发生滚动时,我们就能够通过设置监听器来响应滚动事件,例如判断ScrollView是否已经滚动到了顶部或底部,或者是计算滚动的距离等。这对于自定义滚动效果或是实现一些交互功能非常有用。 在...
这可能涉及计算滚动速度、动画效果以及处理边界条件(如滚动到顶部或底部)。 8. **性能优化**: 当文本内容非常大时,为了提高性能,可能需要使用虚拟化技术,只渲染视口内的文本,而不是一次性加载所有内容。 9. ...