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只要下拉刷新,禁止上拉加载的主要内容,如果未能解决你的问题,请参考以下文章

android怎么把控件放在屏幕最下面

请教如何设置 android RelativeLayout 控件之间没有间距

android编程用怎么让控件的“右边”对齐在屏幕的中心?

android 控件移动方法

android 控件xml属性

android手势如何平移控件