技术标签: 下拉刷新 github 刷新 Android下拉刷新 框架 结构
compile 'in.srain.cube:clog:1.0.2'
compile 'in.srain.cube:cube-sdk:1.0.44.38'
compile(project(':ptr-lib'))
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">
<in.srain.cube.views.ptr.PtrClassicFrameLayout
xmlns:cube_ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/fragment_rotate_header_with_text_view_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"
cube_ptr:ptr_duration_to_close="200"
cube_ptr:ptr_duration_to_close_header="1000"
cube_ptr:ptr_keep_header_when_refresh="true"
cube_ptr:ptr_pull_to_fresh="false"
cube_ptr:ptr_ratio_of_header_height_to_refresh="1.2"
cube_ptr:ptr_resistance="1.7">
<!-- 放入任何view-->
</in.srain.cube.views.ptr.PtrClassicFrameLayout>
</RelativeLayout>
SecondActivity.java
package com.zhoujian.application;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import in.srain.cube.views.ptr.PtrClassicFrameLayout;
import in.srain.cube.views.ptr.PtrDefaultHandler;
import in.srain.cube.views.ptr.PtrFrameLayout;
/**
* Created by zhoujian on 2017/1/9.
*/
public class SecondActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
final PtrClassicFrameLayout ptrFrame = (PtrClassicFrameLayout) findViewById(R.id.fragment_rotate_header_with_text_view_frame);
ptrFrame.setLastUpdateTimeRelateObject(this);
ptrFrame.setPtrHandler(new PtrDefaultHandler() {
@Override
public void onRefreshBegin(PtrFrameLayout frame) {
frame.postDelayed(new Runnable() {
@Override
public void run() {
ptrFrame.refreshComplete();
}
}, 1500);
}
@Override
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
return true;
}
});
}
}
activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">
<in.srain.cube.views.ptr.PtrClassicFrameLayout
xmlns:cube_ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/fragment_rotate_header_with_text_view_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"
cube_ptr:ptr_duration_to_close="200"
cube_ptr:ptr_duration_to_close_header="1000"
cube_ptr:ptr_keep_header_when_refresh="true"
cube_ptr:ptr_pull_to_fresh="false"
cube_ptr:ptr_ratio_of_header_height_to_refresh="1.2"
cube_ptr:ptr_resistance="1.7">
<TextView
android:id="@+id/fragment_rotate_header_with_text_view_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2175ed"
android:clickable="true"
android:gravity="center"
android:text="我是TextView"
android:textColor="#000000"
android:textSize="30sp"/>
</in.srain.cube.views.ptr.PtrClassicFrameLayout>
</RelativeLayout>
MainActivity.java
package com.zhoujian.application;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import in.srain.cube.views.ptr.PtrFrameLayout;
import in.srain.cube.views.ptr.PtrHandler;
import in.srain.cube.views.ptr.header.MaterialHeader;
import in.srain.cube.views.ptr.util.PtrLocalDisplay;
public class MainActivity extends Activity {
//下拉刷新框架android-Ultra-Pull-To-Refresh
private boolean mImageHasLoaded = false;
private long mStartLoadingTime = -1;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button start = (Button)findViewById(R.id.start);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,SecondActivity.class));
}
});
final PtrFrameLayout mPtrFrameLayout = (PtrFrameLayout)findViewById(R.id.material_style_ptr_frame);
// header
final MaterialHeader header = new MaterialHeader(MainActivity.this);
int[] colors = getResources().getIntArray(R.array.google_colors);
header.setColorSchemeColors(colors);
header.setLayoutParams(new PtrFrameLayout.LayoutParams(-1, -2));
header.setPadding(0, PtrLocalDisplay.dp2px(15), 0, PtrLocalDisplay.dp2px(10));
header.setPtrFrameLayout(mPtrFrameLayout);
mPtrFrameLayout.setLoadingMinTime(1000);
mPtrFrameLayout.setDurationToCloseHeader(1500);
mPtrFrameLayout.setHeaderView(header);
mPtrFrameLayout.addPtrUIHandler(header);
/* mPtrFrameLayout.postDelayed(new Runnable() {
@Override
public void run() {
mPtrFrameLayout.autoRefresh(false);
}
}, 100);*/
mPtrFrameLayout.setPtrHandler(new PtrHandler() {
@Override
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
return true;
}
@Override
public void onRefreshBegin(final PtrFrameLayout frame) {
if (mImageHasLoaded) {
long delay = (long) (1000 + Math.random() * 2000);
delay = Math.max(0, delay);
delay = 0;
frame.postDelayed(new Runnable() {
@Override
public void run() {
frame.refreshComplete();
}
}, delay);
} else {
mStartLoadingTime = System.currentTimeMillis();
mPtrFrameLayout.refreshComplete();
}
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">
<in.srain.cube.views.ptr.PtrFrameLayout
xmlns:cube_ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/material_style_ptr_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
cube_ptr:ptr_duration_to_close="300"
cube_ptr:ptr_duration_to_close_header="2000"
cube_ptr:ptr_keep_header_when_refresh="true"
cube_ptr:ptr_pull_to_fresh="false"
cube_ptr:ptr_ratio_of_header_height_to_refresh="1.2"
cube_ptr:ptr_resistance="1.7">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2175ed"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:text="我是TextView"
android:textColor="#000000"
android:textSize="30sp"/>
<Button
android:id="@+id/start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="跳转界面"/>
</LinearLayout>
</in.srain.cube.views.ptr.PtrFrameLayout>
</RelativeLayout>
音视频传输时的基本步骤:1.发起会话(Sip协议)2.编码(硬件编码、软件编码)3.传输(RTP)4.解码(硬件解码、软件解码)5结束会话(Sip协议)视频格式视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类。尽管后者在播放的稳定性和播放画面质量上可能没有前者优秀,但网络流媒体影像视频的广泛传播性使之正被广泛应用于视频点播、网络演示
1.输入官方网址:https://redis.io/2.点击redis标志那一栏的Download下载:https://redis.io/download 可以看到这里有4.0版本,往下可也看到老 版本,比如有:3.2 我们下载4.0.1版本,但是我们注意了,一句话 “The Redis project does not officially support Windows. However
FFmpeg相机花图问题解决方法一、问题现象使用FFmpeg进行进行相机rtsp连接获取相机码流并解码在本地显示,这个过程中有遇见相机花图等问题,排查后发现有花图。正常情况下图像为出现花图的情况时图像如下:二、解决方法1、设置相机参数--将影响网络传输和解码依赖性的参数都调低拿海康相机为例:网页登陆相机192.168.1.252 输入默认用户名:admin密码:12345之后,登陆相机,选择“配置...
描述hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。语法hex 语法:hex(x)参数说明:x -- 10进制整数返回值返回16进制数,以字符串形式表示。实例以下实例展示了 hex 的使用方法:&gt;&gt;&gt;hex(255)'0xff'&gt;&gt;&gt; hex(-42)'-0x2a'&gt;&gt;&gt; hex(1L)'0x1L'&gt;&gt;&gt; ...
烟台大学,简称烟大,位于烟台莱山区,是山东省属重点综合性大学,录取分数线是多少呢?下面学习啦小编为你整理了2017烟台大学录取分数线,希望对你有帮助。2017烟台大学高考录取分数线烟台大学2017录取分数线暂未公布,请继续关注学习啦相关资讯的更新!2016烟台大学录取分数线文科录取分数线大学名称招生地区文理类别录取批次最低分数省控线烟台大学安徽文科本科一批618597烟台大学湖北文科本科二批519...
const app = getApp();Page({ /** * 页面的初始数据 */ data: { userInfo: {}, isOverShare: true }, /** * 生命周期函数--监听页面加载 */ onLoad: async function(options) { await this.getUse...
赤兔Oracle恢复软件可以有效地进行Oracle恢复数据,支持ASM,能够直接从ASM磁盘中导出数据,即使相关的磁盘组不能成功mount支持从ASM中直接抽取出数据文件和其他任意存储在ASM中的文件。即使相关的磁盘组不能成功mount支持的Oracle数据库版本包括7,8i,9i,10g,11g支持多种平台的数据库,包括AIX、LINUX、HPUX、SOLARIS、WINDOWS等。能够在一个平...
由于本人的电脑出了一些问题,便进行了 不清除 文件的方式进行重装了系统,首先进行 删除注册码:本人的系统是 win 10计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\MySQLD Service计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentCont...
根据蓝牙技术联盟(Bluetooth SIG)的预测,到2023年,蓝牙设备的年度总出货量将增加到54亿个,年增长率达到26%,那时90%的蓝牙设备都将支持低功耗蓝牙(BLE,Bluetooth Low Energy)。到2024年,低功耗蓝牙单模设备累计出货量将达到75亿。面对低功耗蓝牙蓝海,更低功耗是厂商们追求的标准之一。Silicon Labs作为最早支持蓝牙5.0和5.2标准产品的厂商之一...
贪心算法-数列极差问题【题目描述】在黑板上写了N个正整数做成的一个数列,进行如下操作:每一次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上剩下一个数,在所有按这种操作方式最后得到的数中,最大的max,最小的为min,则该数列的极差定义为M=max-min。编程任务:对于给定的数列,编程计算出极差M。输入输出样例:输入:42143输出:13【算法分析】当看到此题时..._1671465600
数据查询 public function selectCursorWaitingIncentReceiptRecords() { // SQLを生成する $arr_sql = array(); $arr_sql[] = ' SELECT'; $arr_sql[] = ' receipt_id,'; $arr_sql[] = ' group_id,'; $arr_sql[] = '
Rebex Total PackRebex Total Pack includes all Rebex's components in one pack. Components include: FTP, FTP/SSL (FTPS), SFTP, Mail, Secure Mail, Time and TLS. Protocols include: FTP classic, FTPS - FTP over TLS/SSL, SFTP - SSH File Transfer Protocol