Skip to content

Commit c5622e4

Browse files
committed
左滑加载更多
1 parent 07d4cff commit c5622e4

File tree

12 files changed

+492
-11
lines changed

12 files changed

+492
-11
lines changed

app/src/main/AndroidManifest.xml

+9-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,15 @@
3333
</activity>
3434
<activity
3535
android:name=".activity.DanMuAnimActivity"
36-
android:exported="true"
36+
android:exported="false"
37+
android:screenOrientation="portrait"/>
38+
<activity
39+
android:name=".activity.HorizontalSlideActivity"
40+
android:exported="false"
41+
android:screenOrientation="portrait"/>
42+
<activity
43+
android:name=".activity.MatrixStudyActivity"
44+
android:exported="false"
3745
android:screenOrientation="portrait"/>
3846
<activity
3947
android:name=".jetpack_compose.compose.ComposeExampleActivity"

app/src/main/java/org/ninetripods/mq/study/util/fragment/HomeFragment.java

+39-10
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import org.ninetripods.mq.study.CommonWebviewActivity;
1414
import org.ninetripods.mq.study.R;
1515
import org.ninetripods.mq.study.activity.DanMuAnimActivity;
16+
import org.ninetripods.mq.study.activity.HorizontalSlideActivity;
17+
import org.ninetripods.mq.study.activity.MatrixStudyActivity;
1618
import org.ninetripods.mq.study.anim.AnimationActivity;
1719
import org.ninetripods.mq.study.bezier.BezierDemoActivity;
1820
import org.ninetripods.mq.study.bezier.QQTrackPointActivity;
@@ -42,6 +44,15 @@
4244
public class HomeFragment extends Fragment implements MyOnclickListener {
4345
private RecyclerView recycle_view;
4446
private MainAdapter mAdapter;
47+
private List<NameBean> beans = new ArrayList<>();
48+
private static final int POS_CUSTOM_VIEW = 0;
49+
private static final int POS_CUSTOM_VIEWGROUP = 1;
50+
private static final int POS_ANIM = 2;
51+
private static final int POS_BEZIER = 3;
52+
private static final int POS_PROCESS = 4;
53+
private static final int POS_TOUCH_EVENT = 5;
54+
private static final int POS_POP_WINDOW = 6;
55+
private static final int POS_CUSTOM_VIEW2 = 7;
4556

4657
public HomeFragment() {
4758
// Required empty public constructor
@@ -72,15 +83,15 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
7283
}
7384

7485
private void initBeans() {
75-
List<NameBean> beans = new ArrayList<>();
7686
String[][] array = {
77-
{"自定义View", "饼形图", "AliPay", "弹幕View", ""},
87+
{"自定义View", "饼形图", "AliPay", "弹幕View", "Matrix示例"},
7888
{"自定义ViewGroup", "五环图", "流式布局", "", ""},
7989
{"动画+Path", "补间动画", "PathMeasure", "Path+SVG", "ViewPropertyAnimator"},
8090
{"贝塞尔曲线", "基本用法示例", "仿QQ小红点", "", ""},
8191
{"进程间通信", "Intent", "AIDL", "Messenger", "Binder"},
8292
{"事件滑动", "NestedScroll", "ScrollView+ListView", "", "", ""},
83-
{"弹窗", "PopupWindow", "", "", "", ""}
93+
{"弹窗", "PopupWindow", "", "", "", ""},
94+
{"自定义View2", "横向滑动", "", "", ""},
8495
};
8596
for (String[] anArray : array) {
8697
beans.add(new NameBean(anArray[0], anArray[1], anArray[2], anArray[3], anArray[4]));
@@ -91,7 +102,7 @@ private void initBeans() {
91102
@Override
92103
public void onItemClick(View view, int position) {
93104
switch (position) {
94-
case 0:
105+
case POS_CUSTOM_VIEW:
95106
//自定义View
96107
switch (view.getId()) {
97108
case R.id.tv_view_one:
@@ -104,10 +115,11 @@ public void onItemClick(View view, int position) {
104115
NavitateUtil.startActivity(getActivity(), DanMuAnimActivity.class);
105116
break;
106117
case R.id.tv_view_four:
118+
NavitateUtil.startActivity(getActivity(), MatrixStudyActivity.class);
107119
break;
108120
}
109121
break;
110-
case 1:
122+
case POS_CUSTOM_VIEWGROUP:
111123
//自定义ViewGroup
112124
switch (view.getId()) {
113125
case R.id.tv_view_one:
@@ -120,7 +132,7 @@ public void onItemClick(View view, int position) {
120132
break;
121133
}
122134
break;
123-
case 2:
135+
case POS_ANIM:
124136
//属性动画+Path
125137
switch (view.getId()) {
126138
case R.id.tv_view_two:
@@ -137,7 +149,7 @@ public void onItemClick(View view, int position) {
137149
break;
138150
}
139151
break;
140-
case 3:
152+
case POS_BEZIER:
141153
//贝塞尔曲线
142154
switch (view.getId()) {
143155
case R.id.tv_view_one:
@@ -150,7 +162,7 @@ public void onItemClick(View view, int position) {
150162
break;
151163
}
152164
break;
153-
case 4:
165+
case POS_PROCESS:
154166
switch (view.getId()) {
155167
case R.id.tv_title:
156168
CommonWebviewActivity.webviewEntrance(getActivity(), Constant.PROCESS_URL);
@@ -173,7 +185,7 @@ public void onItemClick(View view, int position) {
173185
break;
174186
}
175187
break;
176-
case 5:
188+
case POS_TOUCH_EVENT:
177189
//嵌套滑动
178190
switch (view.getId()) {
179191
case R.id.tv_view_one:
@@ -184,7 +196,7 @@ public void onItemClick(View view, int position) {
184196
break;
185197
}
186198
break;
187-
case 6:
199+
case POS_POP_WINDOW:
188200
//弹窗
189201
switch (view.getId()) {
190202
case R.id.tv_title:
@@ -195,6 +207,23 @@ public void onItemClick(View view, int position) {
195207
break;
196208
}
197209
break;
210+
case POS_CUSTOM_VIEW2:
211+
switch (view.getId()) {
212+
case R.id.tv_title:
213+
break;
214+
case R.id.tv_view_one:
215+
NavitateUtil.startActivity(getActivity(), HorizontalSlideActivity.class);
216+
break;
217+
case R.id.tv_view_two:
218+
break;
219+
case R.id.tv_view_three:
220+
break;
221+
case R.id.tv_view_four:
222+
break;
223+
}
224+
break;
225+
default:
226+
throw new IllegalStateException("Unexpected value: " + position);
198227
}
199228
}
200229
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.ninetripods.mq.study.activity
2+
3+
import androidx.appcompat.widget.Toolbar
4+
import org.ninetripods.mq.study.BaseActivity
5+
import org.ninetripods.mq.study.R
6+
import org.ninetripods.mq.study.kotlin.ktx.id
7+
import org.ninetripods.mq.study.kotlin.ktx.log
8+
import org.ninetripods.mq.study.kotlin.ktx.showToast
9+
import org.ninetripods.mq.study.widget.HorizontalPicScrollerView
10+
import org.ninetripods.mq.study.widget.HorizontalPicScrollerView.Companion.TYPE_DATA
11+
import org.ninetripods.mq.study.widget.HorizontalPicScrollerView.Companion.TYPE_LOAD_MORE
12+
import org.ninetripods.mq.study.widget.ItemPicInfo
13+
14+
class HorizontalSlideActivity : BaseActivity() {
15+
private val mToolBar: Toolbar by id(R.id.toolbar)
16+
private val mSlideView: HorizontalPicScrollerView by id(R.id.hz_slide_pic_view)
17+
18+
override fun setContentView() {
19+
setContentView(R.layout.activity_horizontal_scorll)
20+
initToolBar(mToolBar, "横向滑动", true, false)
21+
val list = mutableListOf<ItemPicInfo>()
22+
(0..7).forEach { _ ->
23+
list.add(ItemPicInfo("https://img.china.alibaba.com/img/ibank/2013/101/139/834931101_1920026967.jpg", TYPE_DATA))
24+
}
25+
list.add(ItemPicInfo(dataType = TYPE_LOAD_MORE))
26+
log("list数据:${list.size}$list")
27+
mSlideView.setData(list, { item ->
28+
//item Click
29+
showToast("点击图片")
30+
}, {
31+
//查看更多
32+
showToast("查看更多")
33+
})
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.ninetripods.mq.study.activity
2+
3+
import android.graphics.Matrix
4+
import org.ninetripods.mq.study.BaseActivity
5+
import org.ninetripods.mq.study.kotlin.ktx.log
6+
7+
class MatrixStudyActivity : BaseActivity() {
8+
9+
override fun getLayoutId(): Int {
10+
return super.getLayoutId()
11+
}
12+
13+
override fun initEvents() {
14+
val matrix = Matrix()
15+
log("matrix = ${matrix.toShortString()}")
16+
}
17+
18+
19+
}

0 commit comments

Comments
 (0)