ScrollView的简单实用并实现下拉加载
来源:互联网 发布:乳源县网络问政 编辑:程序博客网 时间:2024/06/17 20:39
我们在一个activity中如果文本过多,一屏幕显示不下的时候,那么超出的文字就看不到了。
但是我们在浏览器浏览数据时候一屏幕容纳不下的话我们有下拉条可以下拉,那样就能看到全部内容了。
当然,在android也可以做到。
我们看看代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!--<HorizontalScrollView--> <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/content" android:padding="5dp" android:layout_width="match_parent" android:layout_height="wrap_content" /> </ScrollView> <!--</HorizontalScrollView>--></LinearLayout>
以上的代码中我们可以发现,在TextView外面包含了一层ScrollView,就是这一层ScrollView就能实现我们开篇说的显示问题,当然,ScrollView是纵向的,横向的话就是我注释掉的HorizontalScrollView.
这里我没有添加文本内容,我实在Actitvity中动态设置文本内容的。
下面我们再来看看如何实现下拉到底进行类似于ListView滑到底部进行动态加载的呢?
package com.example.lolli.scrollview;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.widget.ScrollView;import android.widget.TextView;public class MainActivity extends AppCompatActivity { private ScrollView scrollView; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化控件 textView = (TextView) findViewById(R.id.content); scrollView = (ScrollView) findViewById(R.id.scrollView); // 设置文本(获取String.xml中的资源) textView.setText(getResources().getString(R.string.content)); scrollView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_MOVE:{ // 当Y轴滑动的像素<=0,即当前在顶部 if (scrollView.getScrollY()<=0){ Log.i("state", "滑动到了顶部"); } /** * scrollView.getScrollY() 获取Y轴滑动的距离 * scrollView.getHeight() 获取屏幕的高度 * scrollView.getChildAt(0).getMeasuredHeight() 获取scrollView的第一个子元素(即TextView)的内容高度 */ if (scrollView.getScrollY() + scrollView.getHeight() >= scrollView.getChildAt(0).getMeasuredHeight()){ Log.i("state", "滑动到了底部"); textView.append(getResources().getString(R.string.content)); } break; } } return false; } }); }}
这里我们监听了一个事件 onTouchLitenner,可以监控我们在屏幕上的滑动,其实当我手指滑动的距离+屏幕的高度 = 内容的高度,那么久意味着滑到底部了。
这里我们这是动态设置文本内容:
// 设置文本(获取String.xml中的资源) textView.setText(getResources().getString(R.string.content));
取的是string.xml中定义好的内容
。
还有一句代码:
scrollView.getChildAt(0).getMeasuredHeight()这个只的是获取scrollView第一个子元素中的文本高度,我们从最开始的布局中就可以看出来,第一个子元素就是TextView。
这样,我们就实现了利用ScrollView进行下拉到底就进行加载的功能了。/
0 0
- ScrollView的简单实用并实现下拉加载
- 弹性ScrollView下拉弹性显示底部内容的简单实现
- PullToRefreshListView简单实现下拉刷新、下拉加载
- Android scrollview中嵌套listview实现listview的下拉刷新上拉加载更多
- android ScrollView动态添加内容实现下拉加载
- iOS实现scrollView下拉刷新和上拉加载
- android下拉刷新上拉加载简单的实现方法;
- RecyclerView的简单使用,实现下拉刷新、上拉加载
- 简单的上拉加载下拉刷新实现
- [简单实用系列] listview下拉刷新,加载更多
- 用bootstrap做下拉菜单,并使用jQuery实现从服务器加载下拉菜单的item。
- 最简单实用的下拉菜单,
- 简单的方法实现ScrollView
- unity中对于scrollview下拉加载的方法
- android基础知识----scrollview的上拉加载下拉刷新
- 为自己记------android中listview下拉刷新和下拉加载的原理及简单实现
- 用scrollview实现动态加载并支持横竖屏
- ScrollView嵌套GridView,并实现GridView竖直分页加载
- 如何用Android开发工具引用百度地图
- 二叉树的链式存储结构----二叉链表
- 215. Kth Largest Element in an Array
- 多进程与多线程区别
- hihocoder 1051 : 补提交卡
- ScrollView的简单实用并实现下拉加载
- Spring整合JMS(三)——MessageConverter介绍
- 当uitextview 或uitextfield 含有 表情符号 emoji 时 使用 NSMakeRange 可能会出现得异常!
- iOS系统右滑返回全局控制方案
- 数学老师必备的一款五星级几何绘图软件!
- JAVA多线程笔记总结.
- Spring整合JMS(四)——事务管理
- C++检测和定位内存泄漏的技巧
- 冒泡排序 - Bubble Sort