`

滚动到底部或顶部响应的ScrollView使用

阅读更多

建议直接访问原文:滚动到底部或顶部响应的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使用

 

分享到:
评论

相关推荐

    cocos2d-x中ScrollView的使用

    // 处理滚动到顶部的逻辑 break; case cc::ScrollView::EventType::SCROLL_TO_BOTTOM: // 处理滚动到底部的逻辑 break; case cc::ScrollView::EventType::SCROLL_TO_LEFT: // 处理滚动到左边的逻辑 break; ...

    Android-滑动响应工具类目前支持RecyclerView和ScrollView的滑动响应

    ScrollRespondUtils同样支持ScrollView,使得开发者可以轻松地添加滑动事件监听,例如在ScrollView滚动到底部时触发特定操作,如加载更多内容。 3. **API使用**: ScrollRespondUtils提供的API可能包括`...

    android-common-master

    (7) 滚动到底部或顶部响应的ScrollView使用 (8) Gallery滑动一页效果 Demo (9) SearchView使用及搜索提示的实现 (10) Service Demo,包括启动service、绑定service、intent service、aidl service (11) ...

    android ScrollView和ListView固定底部

    这样,当ListView滚动到顶部时,ScrollView会继续滚动,显示其内部的其他内容,而底部的视图始终保持在屏幕下方。 为了进一步优化,我们可以使用Header和Footer的概念来添加额外的视图。ListView允许我们添加头部和...

    ScrollView分页 仿京东淘宝商品详情 改良版(新增到顶部)

    分页效果的核心在于,当用户滚动到ScrollView的底部时,能够自动加载下一个“页面”或布局,模拟出无限滚动的效果。这在Android开发中称为“无限滚动”或“下拉刷新”。而在这个改良版中,还增加了从下部分到顶部的...

    storyboard的scrollview使用小demo

    总之,这个"storyboard的scrollview使用小demo"涵盖了如何在Storyboard中设计和配置UIScrollView,以及如何处理滚动事件和实现响应式布局。通过实践这个小demo,开发者可以更好地掌握在iOS应用中集成滚动视图的技巧...

    Super ScrollView for UGUI 2.2.2一款unity3d非常强大的滑动制作插件

    - 顶部到底部的演示 - 自下而上的演示 - 从左到右的演示 - 右侧演示 - 响应GridView演示 - TreeViewWithChildrenIndent演示 特征: - ListView和GridView和TreeView - 无限的项目 - 项目在不同的大小...

    Android 学习(17)ScrollView

    6. 为了实现滚动到底部或顶部的效果,可以使用ScrollView提供的scrollTo()或smoothScrollTo()方法。例如,`scrollView.smoothScrollTo(0, 0)`将使ScrollView滚动到顶部。 7. 有时,你可能希望在滚动到顶部或底部时...

    scrollview与listview共存

    3. 使用Headerview和FooterView:如果ScrollView只需要在ListView的顶部或底部添加一些静态内容,可以考虑将这些内容作为ListView的头视图(HeaderView)或尾视图(FooterView)。这样,整个界面看起来就像是一个...

    ScrollView中文API.pdf

    - fullScroll(int direction): 滚动到子视图的最顶部或最底部,类似于用户按下了设备的Home或End键。 - fling(int velocityY): 执行快速滚动操作,其中velocityY指定了滚动速度。 - arrowScroll(int direction): 当...

    带回弹效果的ScrollView

    然而,标准的ScrollView并未内置回弹效果,即在滚动到顶部或底部时,仍然可以继续拉动一段距离,然后视图会回弹到原始位置。这种效果在许多现代应用程序中很常见,可以提供更加直观和有趣的用户体验。 本文将详细...

    ScrollView嵌套ListView

    6. **监听滚动事件**:使用`OnScrollListener`监听ScrollView和ListView的滚动事件,以便在需要时做出相应的响应,例如隐藏/显示顶部或底部的工具栏。 7. **适配器的优化**:优化ListView的Adapter,如使用...

    ScrollView嵌套ListView滑动冲突的解决方法

    在ListView的`onTouchEvent`中,如果检测到上滑或下滑,且ListView已经滑动到底部或顶部,返回false,将事件交给父视图(ScrollView)处理。 3. **使用NestedScrollView替换ScrollView** 自Android Design Support...

    关于多个ListView与ScrollView滑动冲突的一个简单处理方法

    当ListView滚动到底部或顶部时,切换标志,使得ScrollView开始处理滑动。 4. **使用第三方库** 第三方库如`androidx.core.widget.NestedScrollView`(AndroidX库)和`SwipeRefreshLayout`提供了更好的滑动交互体验...

    scrollview与listview嵌套问题 Eclipse版

    对于Eclipse环境,由于API版本限制,我们可能需要使用`setOnTouchListener`来监听滑动事件,并在事件处理中阻止事件传递到ScrollView。 第二个知识点是适配器的使用。在ListView中,通常需要自定义Adapter来填充...

    Trinea Android Demo

    滚动到底部或顶部响应的ScrollView使用(7) Gallery滑动一页效果 Demo(8) SearchView使用及搜索提示的实现(9) Service Demo,包括启动service、绑定service、intent service、aidl service(10) BroadcastReceiver ...

    scrollUp滑动返回顶部

    这个功能使得用户能够轻松快捷地从页面底部返回到顶部,无需手动滚动鼠标或滑动屏幕。下面我们将深入探讨这个功能的实现原理、应用场景以及相关技术。 一、实现原理 1. JavaScript/jQuery实现:最常见的实现方式是...

    微信小程序学习demo:视图控件View、ScrollView、Swiper.zip

    ScrollView支持滑动事件,可以监听用户的滑动行为,同时还可以设置滚动到底部、顶部等回调函数,实现下拉刷新、上拉加载等功能。在WXViewScrollSwiperDemo中,你可以看到如何配置ScrollView以适应不同场景的需求。 ...

    Android开发之ScrollView的滑动监听

    如此一来,当ScrollView发生滚动时,我们就能够通过设置监听器来响应滚动事件,例如判断ScrollView是否已经滚动到了顶部或底部,或者是计算滚动的距离等。这对于自定义滚动效果或是实现一些交互功能非常有用。 在...

    QmlTextEdit带滚动条QmlTextEditScrollBar.7z

    这可能涉及计算滚动速度、动画效果以及处理边界条件(如滚动到顶部或底部)。 8. **性能优化**: 当文本内容非常大时,为了提高性能,可能需要使用虚拟化技术,只渲染视口内的文本,而不是一次性加载所有内容。 9. ...

Global site tag (gtag.js) - Google Analytics