Android 控件smartRefeshLayout只要下拉刷新,禁止上拉加载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 控件smartRefeshLayout只要下拉刷新,禁止上拉加载相关的知识,希望对你有一定的参考价值。
取消smartRefeshLayout的上拉加载功能
一.导入依赖
在app-module中添加RecycleView和SmartRefreshLayout的依赖
//recyclerview implementation 'com.android.support:recyclerview-v7:26.1.0' implementation 'com.android.support:design:26.1.0' //SmartRefreshLayout implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.4-7' implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.4-7'
二.在mainActivity中添加xml布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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"tools:context="com.freshdemo.MainActivity"android:orientation="vertical"><com.scwang.smartrefresh.layout.SmartRefreshLayoutandroid:id="@+id/refreshLayout"android:layout_width="match_parent"android:layout_height="match_parent"app:srlAccentColor="#00000000"app:srlPrimaryColor="#00000000"app:srlEnablePreviewInEditMode="true"><android.support.v7.widget.RecyclerViewandroid:id="@+id/rv"android:layout_width="match_parent"android:layout_height="match_parent"/></com.scwang.smartrefresh.layout.SmartRefreshLayout></LinearLayout>
这是SmartRefreshLayout的基本布局,其中:
app:srlAccentColor="#00000000"//设置Header主题颜色 app:srlPrimaryColor="#00000000"//设置Footer主题颜色 app:srlEnablePreviewInEditMode="true"//开启和关闭预览功能
三.MainActivity中初始化和刷新加载事件
private RecyclerView mRecyclerView; private RefreshLayout mRefreshLayout; //初始化 mRecyclerView=findViewById(R.id.rv); mRefreshLayout = findViewById(R.id.refreshLayout); //刷新 mRefreshLayout.setOnRefreshListener(new OnRefreshListener() @Override public void onRefresh(RefreshLayout refreshlayout) mData.clear(); mNameAdapter.notifyDataSetChanged(); refreshlayout.finishRefresh(); ); //加载更多 mRefreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() @Override public void onLoadmore(RefreshLayout refreshlayout) for(int i=0;i<30;i++) mData.add("小明"+i); mNameAdapter.notifyDataSetChanged(); refreshlayout.finishLoadmore(); );
四.运行效果
SmartRefreshLayout运行的默认效果如下
1.gif
五.SmartRefreshLayout的其他的刷新样式
#######5.1经典样式ClassicsFooter
只需要在布局中添加对应的header和footer,则activity_main.xml代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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"tools:context="com.freshdemo.MainActivity"android:orientation="vertical"><com.scwang.smartrefresh.layout.SmartRefreshLayoutandroid:id="@+id/refreshLayout"android:layout_width="match_parent"android:layout_height="match_parent"app:srlAccentColor="#00000000"app:srlPrimaryColor="#00000000"app:srlEnablePreviewInEditMode="true"><com.scwang.smartrefresh.layout.header.ClassicsHeaderandroid:layout_width="match_parent"android:layout_height="wrap_content"/><android.support.v7.widget.RecyclerViewandroid:id="@+id/rv"android:layout_width="match_parent"android:layout_height="match_parent"/><com.scwang.smartrefresh.layout.footer.ClassicsFooterandroid:layout_width="match_parent"android:layout_height="wrap_content"/></com.scwang.smartrefresh.layout.SmartRefreshLayout></LinearLayout>
运行效果如下图:
2.gif
5.2一个绚丽的PhoenixHeader展示
修改后activity_main.xml代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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"tools:context="com.freshdemo.MainActivity"android:orientation="vertical"><com.scwang.smartrefresh.layout.SmartRefreshLayoutandroid:id="@+id/refreshLayout"android:layout_width="match_parent"android:layout_height="match_parent"app:srlAccentColor="#00000000"app:srlPrimaryColor="#00000000"app:srlEnablePreviewInEditMode="true"><com.scwang.smartrefresh.header.PhoenixHeaderandroid:layout_width="match_parent"android:layout_height="wrap_content"/><android.support.v7.widget.RecyclerViewandroid:id="@+id/rv"android:layout_width="match_parent"android:layout_height="match_parent"/><com.scwang.smartrefresh.layout.footer.BallPulseFooterandroid:layout_width="match_parent"android:layout_height="wrap_content"/></com.scwang.smartrefresh.layout.SmartRefreshLayout></LinearLayout>
运行效果图:
3.gif
5.3header,footer各样式类所引入包路径如下
SmartRefreshLayout可以引入好几种Header和Footer样式,其中footer固定样式有三种,在refresh-layout包下:
image.png
包路径分别为:
com.scwang.smartrefresh.layout.footer.BallPulseFootercom.scwang.smartrefresh.layout.footer.ClassicsFootercom.scwang.smartrefresh.layout.footer.FalsifyFooter
header样式则很多,在refresh-layout包下有:
image.png
包路径分别为:
com.scwang.smartrefresh.layout.header.BezierRadarHeadercom.scwang.smartrefresh.layout.header.ClassicsHeadercom.scwang.smartrefresh.layout.header.FalsifyHeader
在refresh-header包下有以下样式:
image.png
他们的包路径是:
com.scwang.smartrefresh.header.BezierCircleHeadercom.scwang.smartrefresh.header.DeliveryHeader//以下类似,在此省略//......
六.自定义Header和Footer
当然SmartRefreshLayout还支持自定义Header和Footer
具体可以参考官网中的自定义Header
SmartRefreshLayout关于属性这一块也是有很多可以设置的,大家依然可以去SmartRefreshLayout官网查看更多使用细则,这里就不展开讲解了
今天就讲到这里了,谢谢大家。
参考技术A refreshLayout.setEnableRefresh(true);//是否启用下拉刷新功能refreshLayout.setEnableLoadMore(false);//是否启用上拉加载功能
android 控件xml属性
参考技术A android : orientation (horizontal/vertical) 设置布局水平还是垂直,默认是垂直 LinearLayout中使用a ndroid : checked (true/false) 标记默认选中,如果是单选则选中最后一个 RadioButton、CheckBox中使用
android: layout_gravity (center/right/left/bottom/top) 父布局中的位置
android: gravity (center/right/left/bottom/top)自己内容的位置 比如Button中的text 的位置
android: hint (string) 提示信息,当文本框为空的时候显示,点击消失 Edittext中使用
android: singleLine (true/false) 设置单行输入,一旦设置为true,则文字不会自动换行
android:textColor(#123456) 设置字体颜色
android: textStyle (bold/italic/bolditalic)设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开
android:textSize (20sp)设置字体大小
android:editable(true/false)是否可编辑 edittext中才有效
android:textColorHighlight (#ffffff) 文字底色
android:textColorHint (#ffffff)提示文字颜色 edittext中才有效
android:textScaleX (1.5)文字距离
android:background 设置背景 可以是图片、颜色、@drawable/中的样式
android:layout_weight (1、2、3)权重 一般用在linearLayout中的
android:autoLink(none、web、email、phone、map、all)设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接
android: cursorVisible (true/false)设置光标是否显示
android: digits (123asdasaf/正则表达式) 限制输入内容
android: ellipsize (start、end、middle、marquee)设置当文字过长时,该控件该如何显示。有如下值设置:”start”省略号显示在开头;”end”省略号显示在结尾;”middle”省略号显示在中间;”marquee”以跑马灯的方式显示(动画横向移动)
android :inputType (none、text、textCapCharacters字母大小、textCapWords单词首字母大小、textCapSentences仅第一个字母大小、textAutoCorrect、textAutoComplete自动完成、textMultiLine多行输入、textImeMultiLine输入法多行(如果支持)、textNoSuggestions不提示、textEmailAddress电子邮件地址、textEmailSubject邮件主题、textShortMessage短信息(会多一个表情按钮出来)、textLongMessage长讯息?、textPersonName人名、textPostalAddress地址、textPassword密码、textVisiblePassword可见密码、textWebEditText作为网页表单的文本、textFilte文本筛选过滤、textPhonetic拼音输入、numberSigned有符号数字格式、numberDecimal可带小数点的浮点格式、phone电话号码、datetime时间日期、date日期、time时间。)设置文本类型
android: maxLines 设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示
android:minLines 设置文本的最小行数
android:scrollHorizontally 设置文本超出TextView的宽度的情况下,是否出现横拉条。
android:clickable (true/false) view是否能对click事件作出反应
android:onClick 当view被click之后,view的context的哪个方法被呼叫。通常这个context是指view所在的Activity。例如:android:onClick='sayHello',则相应的Activity里面有一个方法public void sayHello(View view)方法,当这个view被click之后,sayHello方法就会被调用。
android:longClickable true/false view是否可以对长时间的click事件作出反应。
以上是关于Android 控件smartRefeshLayout只要下拉刷新,禁止上拉加载的主要内容,如果未能解决你的问题,请参考以下文章