Skip to content

Commit cff53be

Browse files
committed
支持flex
1 parent b305b18 commit cff53be

32 files changed

+677
-789
lines changed

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ dependencies {
4444
exclude module: 'support-compat'
4545
}
4646
kapt 'com.jakewharton:butterknife-compiler:8.8.1'
47+
// api 'com.google.code.gson:gson:2.8.2'
4748
}
4849
repositories {
4950
mavenCentral()

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
<activity android:name="zone.com.zrefreshlayoutdemo.MeterialHeaderActivity" />
3737
<activity android:name="zone.com.zrefreshlayoutdemo.SinaHeaderActivity" />
3838
<activity android:name="zone.com.zrefreshlayoutdemo.FlexibilityListViewActivity" />
39+
<activity android:name="zone.com.zrefreshlayoutdemo.FlexibilityKtActivity" />
3940
<activity
4041
android:name="zone.com.zrefreshlayoutdemo.ScrollerNesttActivity"
4142
android:theme="@style/NoActionBar" />

app/src/main/java/zone/com/zrefreshlayoutdemo/Apps.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.zone.lib.Configuration;
66

77
import zone.com.zrefreshlayout.Config;
8+
import zone.com.zrefreshlayout.ZRefreshLayout;
89
import zone.com.zrefreshlayout.footer.MeterialFooter;
910
import zone.com.zrefreshlayout.header.MeterialHead;
1011
import zone.com.zrefreshlayout.header.SinaRefreshHeader;
@@ -33,6 +34,7 @@ public void onCreate() {
3334
public static void setDefaultHeader() {
3435
Config.build()
3536
.setHeader(new MeterialHead(COLORS_RED_GREEN_YELLOW))
37+
.setHeadPin(ZRefreshLayout.HeadPin.NOT_PIN)
3638
.setFooter(new MeterialFooter())
3739
.setResistance(new DampingHalf())
3840
// .setHeader(new CircleRefresh())
@@ -61,7 +63,7 @@ public static void setGlobalHead(HeadSetting mHeadSetting) {
6163
temp.setHeader(waveHead);
6264
break;
6365
}
64-
temp.setPinContent(mHeadSetting.isPin())
66+
temp.setHeadPin(mHeadSetting.headPin())
6567
.setFooter(new MeterialFooter())
6668
.setResistance(new DampingHalf())
6769
.writeLog(true)

app/src/main/java/zone/com/zrefreshlayoutdemo/AutoRefreshActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ protected void onCreate(Bundle savedInstanceState) {
2626
setContentView(R.layout.unique_feature_copy);
2727
ButterKnife.bind(this);
2828
refresh.setIHeaderView(new MeterialHead());
29-
refresh.setPinContent(true);
29+
refresh.setHeadPin(ZRefreshLayout.HeadPin.PIN);
3030
refresh.setPullListener(new ZRefreshLayout.PullListener() {
3131
@Override
3232
public void refresh(final ZRefreshLayout zRefreshLayout) {
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package zone.com.zrefreshlayoutdemo
2+
3+
import android.graphics.Color
4+
import android.os.Bundle
5+
import android.support.v4.view.ViewCompat
6+
import android.support.v7.app.AppCompatActivity
7+
import android.support.v7.widget.LinearLayoutManager
8+
import android.support.v7.widget.RecyclerView
9+
import android.view.View
10+
import android.widget.ImageView
11+
12+
import com.zone.adapter.callback.Helper
13+
14+
import java.util.ArrayList
15+
16+
import butterknife.BindView
17+
import butterknife.ButterKnife
18+
import butterknife.OnClick
19+
import com.zone.adapter.QuickRcvAdapter
20+
import kotlinx.android.synthetic.main.a_flexibility.*
21+
import zone.com.zrefreshlayout.FlexibilityLayout
22+
import zone.com.zrefreshlayout.IScroll
23+
import zone.com.zrefreshlayout.ZRefreshLayout
24+
import zone.com.zrefreshlayout.scroll.listener.ScrollScale
25+
import zone.com.zrefreshlayout.scroll.listener.ScrollScroll
26+
27+
/**
28+
* Created by fuzhipeng on 2017/1/10.
29+
*/
30+
31+
class FlexibilityKtActivity : AppCompatActivity() {
32+
33+
private val mDatas = ArrayList<String>()
34+
private var adapter2: QuickRcvAdapter<String>? = null
35+
val colorArry = intArrayOf(Color.WHITE, Color.GREEN, Color.YELLOW, Color.CYAN)
36+
37+
var height: Int = 0
38+
39+
init {
40+
var i: Int = 'A'.toInt()
41+
while (i <= 'H'.toInt()) {
42+
mDatas.add("" + i.toChar())
43+
i++
44+
}
45+
}
46+
47+
override fun onCreate(savedInstanceState: Bundle?) {
48+
super.onCreate(savedInstanceState)
49+
setContentView(R.layout.a_flexibility)
50+
ButterKnife.bind(this)
51+
iv.post { height = iv.height }
52+
rv.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
53+
adapter2 = object : QuickRcvAdapter<String>(this, mDatas) {
54+
override fun fillData(helper: Helper<String>, item: String, itemChanged: Boolean, layoutId: Int) {
55+
helper.setText(R.id.tv, item)
56+
.setBackgroundColor(R.id.tv, colorArry[helper.position % colorArry.size])
57+
}
58+
59+
override fun getItemLayoutId(data: String, position: Int): Int {
60+
return R.layout.item_menu
61+
}
62+
63+
}
64+
rv!!.adapter = adapter2
65+
}
66+
67+
68+
@OnClick(R.id.bt_scroll, R.id.bt_scale, R.id.bt_Header)
69+
fun onClick(view: View) {
70+
val scrollScale = when (view.id) {
71+
R.id.bt_scroll -> arrayListOf(ScrollScroll(refresh!!))
72+
R.id.bt_scale -> arrayListOf(ScrollScale(refresh!!))
73+
R.id.bt_Header -> arrayListOf(ScrollHeadScroll(refresh!!, iv!!, height), ScrollScroll(refresh!!))
74+
else -> arrayListOf(ScrollScroll(refresh!!))
75+
}
76+
refresh!!.iScrollList.clear()
77+
refresh!!.iScrollList.addAll(scrollScale)
78+
}
79+
80+
class ScrollHeadScroll(mZRefreshLayout: ZRefreshLayout, val iv: ImageView, val height: Int) : IScroll(mZRefreshLayout) {
81+
82+
override fun scrollTo(fy: Int, isTriggerHeaderOnPullingDown: Boolean) {
83+
if (fy > 0) {
84+
val ph = 1 + fy.toFloat() / height.toFloat()
85+
ViewCompat.setPivotY(iv, 0f)
86+
ViewCompat.setScaleX(iv, ph)
87+
ViewCompat.setScaleY(iv, ph)
88+
}
89+
}
90+
}
91+
}
92+

app/src/main/java/zone/com/zrefreshlayoutdemo/FlexibilityListViewActivity.java

Lines changed: 0 additions & 104 deletions
This file was deleted.

app/src/main/java/zone/com/zrefreshlayoutdemo/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public void onClick(View view) {
9494
startActivity(new Intent(this, CirlcleActivity.class));
9595
break;
9696
case R.id.flexibilityListViewActivity:
97-
startActivity(new Intent(this, FlexibilityListViewActivity.class));
97+
startActivity(new Intent(this, FlexibilityKtActivity.class));
9898
break;
9999
case R.id.nestScroller:
100100
startActivity(new Intent(this, ScrollerNesttActivity.class));

app/src/main/java/zone/com/zrefreshlayoutdemo/PinContentActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ protected void onCreate(Bundle savedInstanceState) {
2222
super.onCreate(savedInstanceState);
2323
setContentView(R.layout.auto_refresh);
2424
ButterKnife.bind(this);
25-
refresh.setPinContent(true);
25+
refresh.setHeadPin(ZRefreshLayout.HeadPin.PIN);
2626
refresh.setPullListener(new ZRefreshLayout.PullListener() {
2727
@Override
2828
public void refresh(final ZRefreshLayout zRefreshLayout) {

app/src/main/java/zone/com/zrefreshlayoutdemo/SettingActivity.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import android.view.View;
77
import android.widget.RadioButton;
88
import android.widget.RadioGroup;
9+
910
import butterknife.BindView;
1011
import butterknife.ButterKnife;
1112
import butterknife.OnClick;
13+
import zone.com.zrefreshlayout.ZRefreshLayout;
1214
import zone.com.zrefreshlayoutdemo.common.Constant;
1315
import zone.com.zrefreshlayoutdemo.common.HeadSetting;
1416

@@ -45,7 +47,7 @@ protected void onCreate(Bundle savedInstanceState) {
4547
if (mHeadSetting == null) {
4648
mHeadSetting = new HeadSetting();
4749
rbHeadMeterial.performClick();
48-
rbPinTrue.performClick();
50+
rbPinFalse.performClick();
4951
} else {
5052
switch (mHeadSetting.getHeadmode()) {
5153
case HeadSetting.METERIAL:
@@ -58,7 +60,7 @@ protected void onCreate(Bundle savedInstanceState) {
5860
rbHeadWave.performClick();
5961
break;
6062
}
61-
if (mHeadSetting.isPin())
63+
if (mHeadSetting.headPin() == ZRefreshLayout.HeadPin.PIN)
6264
rbPinTrue.performClick();
6365
else
6466
rbPinFalse.performClick();
@@ -92,9 +94,9 @@ public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
9294

9395
public void onCheckedChanged_Pin(@IdRes int checkedId) {
9496
if (checkedId == R.id.rb_pin_true)
95-
mHeadSetting.setPin(true);
97+
mHeadSetting.setPin(ZRefreshLayout.HeadPin.PIN);
9698
else
97-
mHeadSetting.setPin(false);
99+
mHeadSetting.setPin(ZRefreshLayout.HeadPin.NOT_PIN);
98100
}
99101

100102
public void onCheckedChanged_Head(@IdRes int checkedId) {

app/src/main/java/zone/com/zrefreshlayoutdemo/common/HeadSetting.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package zone.com.zrefreshlayoutdemo.common;
22

3+
import zone.com.zrefreshlayout.ZRefreshLayout;
4+
35
/**
46
* MIT License
57
* Copyright (c) [2018] [Zone]
@@ -11,7 +13,7 @@ public class HeadSetting {
1113
public static final int WAVE = 2;
1214

1315
private int headmode;
14-
private boolean pin;
16+
private ZRefreshLayout.HeadPin headPin = ZRefreshLayout.HeadPin.NOT_PIN;
1517

1618
public int getHeadmode() {
1719
return headmode;
@@ -21,11 +23,11 @@ public void setHeadmode(int headmode) {
2123
this.headmode = headmode;
2224
}
2325

24-
public boolean isPin() {
25-
return pin;
26+
public ZRefreshLayout.HeadPin headPin() {
27+
return headPin;
2628
}
2729

28-
public void setPin(boolean pin) {
29-
this.pin = pin;
30+
public void setPin(ZRefreshLayout.HeadPin pin) {
31+
this.headPin = pin;
3032
}
3133
}

0 commit comments

Comments
 (0)