Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ffba6d0

Browse files
author
xiaoyao
committed
优化view
1 parent 20c13f1 commit ffba6d0

18 files changed

+681
-171
lines changed

‎app/build.gradle‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ dependencies {
2727
exclude group: 'com.android.support', module: 'support-annotations'
2828
})
2929
compile 'com.android.support:appcompat-v7:24.2.1'
30-
compile 'com.android.support.constraint:constraint-layout:1.0.2'
31-
compile 'com.android.support:recyclerview-v7:24.0.0-alpha1'
30+
compile 'com.android.support:recyclerview-v7:24.2.1'
3231
testCompile 'junit:junit:4.12'
3332
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.34'
3433
}

‎app/src/main/AndroidManifest.xml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<activity android:name=".activity.FingerprintActivity" />
3535
<activity android:name=".activity.BannerActivity" />
3636
<activity android:name=".activity.HoverItemActivity"/>
37+
<activity android:name=".activity.ItemCenterRVActivity"/>
3738
</application>
3839

3940
</manifest>

‎app/src/main/java/com/allen/androidcustomview/activity/HoverItemActivity.java‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import android.support.v7.app.AppCompatActivity;
66
import android.support.v7.widget.LinearLayoutManager;
77
import android.support.v7.widget.RecyclerView;
8-
import android.util.Log;
98
import android.widget.TextView;
109

1110
import com.allen.androidcustomview.R;
@@ -39,7 +38,7 @@ public class HoverItemActivity extends AppCompatActivity {
3938

4039
private List<UserBean> userBeans = new ArrayList<>();
4140

42-
private String[] names = new String[]{"阿妹","打黑牛","张三","李四","王五","田鸡","孙五"};
41+
private String[] names = new String[]{"阿妹","打黑牛","张三","李四","王五","田鸡","孙五"};
4342

4443
/**
4544
* 汉字转换成拼音的类
@@ -51,6 +50,7 @@ public class HoverItemActivity extends AppCompatActivity {
5150
private PinyinComparator pinyinComparator;
5251

5352
private LinearLayoutManager layoutManager;
53+
5454
@Override
5555
protected void onCreate(@Nullable Bundle savedInstanceState) {
5656
super.onCreate(savedInstanceState);
@@ -66,11 +66,13 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
6666
indexView = (IndexView) findViewById(R.id.index_view);
6767
showTextDialog = (TextView) findViewById(R.id.show_text_dialog);
6868

69-
layoutManager=new LinearLayoutManager(this);
69+
layoutManager = new LinearLayoutManager(this);
7070
recyclerView.setLayoutManager(layoutManager);
71+
//一行代码实现吸顶悬浮的效果
7172
recyclerView.addItemDecoration(new HoverItemDecoration(this, new HoverItemDecoration.BindItemTextCallback() {
7273
@Override
7374
public String getItemText(int position) {
75+
//悬浮的信息
7476
return userBeans.get(position).getSortLetters();
7577
}
7678
}));
@@ -93,7 +95,7 @@ public void onTouchingLetterChanged(String letter) {
9395
// 该字母首次出现的位置
9496
int position = getPositionForSection(letter);
9597
if (position != -1) {
96-
layoutManager.scrollToPositionWithOffset(position,0);
98+
layoutManager.scrollToPositionWithOffset(position,0);
9799
layoutManager.setStackFromEnd(false);
98100
}
99101
}
@@ -114,7 +116,7 @@ private List<UserBean> getData() {
114116
List<UserBean> userBeans = new ArrayList<>();
115117
for (int i = 0; i < 50; i++) {
116118
UserBean userBean = new UserBean();
117-
userBean.setUserName(names[i%7]);
119+
userBean.setUserName(names[i % 7]);
118120
userBeans.add(userBean);
119121
}
120122

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package com.allen.androidcustomview.activity;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.Nullable;
5+
import android.support.v7.app.AppCompatActivity;
6+
import android.support.v7.widget.LinearLayoutManager;
7+
import android.support.v7.widget.LinearSnapHelper;
8+
import android.support.v7.widget.RecyclerView;
9+
10+
import com.allen.androidcustomview.R;
11+
import com.allen.androidcustomview.adapter.ItemCenter2Adapter;
12+
import com.allen.androidcustomview.adapter.ItemCenterAdapter;
13+
import com.allen.androidcustomview.widget.DividerItemDecoration;
14+
import com.allen.androidcustomview.widget.ItemCenterRecyclerView;
15+
16+
import java.util.ArrayList;
17+
import java.util.List;
18+
19+
/**
20+
* <pre>
21+
* @author : xiaoyao
22+
* e-mail : xiaoyao@51vest.com
23+
* date : 2018年05月07日
24+
* desc :
25+
* version : 1.0
26+
* </pre>
27+
*/
28+
29+
public class ItemCenterRVActivity extends AppCompatActivity {
30+
private ItemCenterRecyclerView recyclerView;
31+
private ItemCenterRecyclerView recyclerView2;
32+
private ItemCenterAdapter adapter;
33+
private ItemCenter2Adapter adapter2;
34+
@Override
35+
protected void onCreate(@Nullable Bundle savedInstanceState) {
36+
super.onCreate(savedInstanceState);
37+
setContentView(R.layout.activity_item_center);
38+
39+
40+
recyclerView = (ItemCenterRecyclerView) findViewById(R.id.recycler_view);
41+
recyclerView2 = (ItemCenterRecyclerView) findViewById(R.id.recycler_view_2);
42+
43+
44+
initRv(recyclerView);
45+
initRv(recyclerView2);
46+
recyclerView.setAdapter(adapter);
47+
recyclerView2.setAdapter(adapter2);
48+
49+
// recyclerView2.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.HORIZONTAL_LIST));
50+
setSyncScroll(recyclerView,recyclerView2);
51+
52+
}
53+
54+
private void initRv(ItemCenterRecyclerView recyclerView) {
55+
LinearLayoutManager layoutManager = new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false);
56+
recyclerView.setLayoutManager(layoutManager);
57+
58+
LinearSnapHelper linearSnapHelper = new LinearSnapHelper();
59+
linearSnapHelper.attachToRecyclerView(recyclerView);
60+
61+
adapter = new ItemCenterAdapter(this,recyclerView,getData());
62+
adapter2 = new ItemCenter2Adapter(this,recyclerView,getData());
63+
}
64+
65+
private List<String> getData() {
66+
List<String> strings = new ArrayList<>();
67+
for (int i = 0; i < 20; i++) {
68+
strings.add("");
69+
}
70+
return strings;
71+
}
72+
73+
public void setSyncScroll(final RecyclerView leftList, final RecyclerView rightList) {
74+
leftList.addOnScrollListener(new RecyclerView.OnScrollListener() {
75+
@Override
76+
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
77+
if (recyclerView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) {
78+
rightList.scrollBy(dx, dy);
79+
}
80+
}
81+
});
82+
83+
rightList.addOnScrollListener(new RecyclerView.OnScrollListener() {
84+
@Override
85+
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
86+
if (recyclerView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) {
87+
leftList.scrollBy(dx, dy);
88+
}
89+
}
90+
});
91+
}
92+
}

‎app/src/main/java/com/allen/androidcustomview/activity/MainActivity.java‎

Lines changed: 67 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -3,123 +3,99 @@
33
import android.content.Intent;
44
import android.os.Bundle;
55
import android.support.v7.app.AppCompatActivity;
6+
import android.support.v7.widget.LinearLayoutManager;
7+
import android.support.v7.widget.RecyclerView;
68
import android.view.View;
7-
import android.widget.Button;
89

910
import com.allen.androidcustomview.R;
11+
import com.allen.androidcustomview.adapter.MainAdapter;
12+
import com.allen.androidcustomview.bean.TypeBean;
1013
import com.allen.androidcustomview.tagview.TagActivity;
14+
import com.allen.androidcustomview.widget.DividerItemDecoration;
15+
import com.chad.library.adapter.base.BaseQuickAdapter;
1116

17+
import java.util.ArrayList;
18+
import java.util.List;
1219

13-
public class MainActivity extends AppCompatActivity {
1420

15-
private Button button_bubble;
16-
private Button button_wave_bezier;
17-
private Button button_wave_sin_cos;
18-
private Button button_radar;
19-
private Button button_tag;
20-
private Button animation_btn;
21-
private Button pay_psd_view_btn;
22-
private Button progress_btn;
21+
public class MainActivity extends AppCompatActivity implements BaseQuickAdapter.OnItemClickListener {
2322

24-
private Button animationViewBtn;
25-
private Button huaweiViewBtn;
26-
private Button fingerBtn;
27-
private Button bannerBtn;
2823

24+
private RecyclerView recyclerView;
25+
26+
private MainAdapter adapter;
27+
28+
private List<TypeBean> typeBeans = new ArrayList<>();
2929

3030
@Override
3131
protected void onCreate(Bundle savedInstanceState) {
3232
super.onCreate(savedInstanceState);
3333
setContentView(R.layout.activity_main);
3434

35-
button_bubble = (Button) findViewById(R.id.bubble_view_btn);
36-
button_wave_bezier = (Button) findViewById(R.id.wave_view_by_bezier_btn);
37-
button_wave_sin_cos = (Button) findViewById(R.id.wave_view_by_sin_cos_btn);
38-
button_radar = (Button) findViewById(R.id.radar_view_btn);
39-
button_tag = (Button) findViewById(R.id.tag_view_btn);
40-
animation_btn = (Button) findViewById(R.id.animation_btn);
41-
pay_psd_view_btn = (Button) findViewById(R.id.pay_psd_view_btn);
42-
progress_btn = (Button) findViewById(R.id.progress_btn);
43-
animationViewBtn = (Button) findViewById(R.id.animation_view_btn);
44-
huaweiViewBtn = (Button) findViewById(R.id.huawei_view_btn);
45-
fingerBtn = (Button) findViewById(R.id.finger_btn);
46-
bannerBtn = (Button) findViewById(R.id.banner_view_btn);
35+
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
36+
37+
adapter = new MainAdapter(getData());
38+
adapter.setOnItemClickListener(this);
39+
recyclerView.setLayoutManager(new LinearLayoutManager(this));
40+
recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));
41+
recyclerView.setAdapter(adapter);
42+
}
43+
44+
private List<TypeBean> getData() {
45+
typeBeans.add(new TypeBean("气泡漂浮动画", 0));
46+
typeBeans.add(new TypeBean("波浪动画--贝塞尔曲线实现", 1));
47+
typeBeans.add(new TypeBean("波浪动画--正余弦函数实现", 2));
48+
typeBeans.add(new TypeBean("水波(雷达)扩散效果", 3));
49+
typeBeans.add(new TypeBean("RecyclerView实现另类的Tag标签", 4));
50+
typeBeans.add(new TypeBean("按钮自定义动画", 5));
51+
typeBeans.add(new TypeBean("自定义支付密码输入框", 6));
52+
typeBeans.add(new TypeBean("自定义进度条", 7));
53+
typeBeans.add(new TypeBean("使用的带动画的view", 8));
54+
typeBeans.add(new TypeBean("粘性小球", 9));
55+
typeBeans.add(new TypeBean("banner", 10));
56+
typeBeans.add(new TypeBean("吸顶效果--一行代码实现", 11));
57+
return typeBeans;
58+
}
4759

48-
button_bubble.setOnClickListener(new View.OnClickListener() {
49-
@Override
50-
public void onClick(View view) {
60+
@Override
61+
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
62+
switch (typeBeans.get(position).getType()) {
63+
case 0:
5164
startActivity(new Intent(MainActivity.this, BubbleViewActivity.class));
52-
}
53-
});
54-
button_wave_bezier.setOnClickListener(new View.OnClickListener() {
55-
@Override
56-
public void onClick(View view) {
65+
break;
66+
case 1:
5767
startActivity(new Intent(MainActivity.this, WaveByBezierActivity.class));
58-
}
59-
});
60-
button_wave_sin_cos.setOnClickListener(new View.OnClickListener() {
61-
@Override
62-
public void onClick(View view) {
68+
break;
69+
case 2:
6370
startActivity(new Intent(MainActivity.this, WaveBySinCosActivity.class));
64-
}
65-
});
66-
button_radar.setOnClickListener(new View.OnClickListener() {
67-
@Override
68-
public void onClick(View view) {
71+
break;
72+
case 3:
6973
startActivity(new Intent(MainActivity.this, RadarActivity.class));
70-
}
71-
});
72-
button_tag.setOnClickListener(new View.OnClickListener() {
73-
@Override
74-
public void onClick(View view) {
74+
break;
75+
case 4:
7576
startActivity(new Intent(MainActivity.this, TagActivity.class));
76-
}
77-
});
78-
animation_btn.setOnClickListener(new View.OnClickListener() {
79-
@Override
80-
public void onClick(View view) {
77+
break;
78+
case 5:
8179
startActivity(new Intent(MainActivity.this, AnimationBtnActivity.class));
82-
}
83-
});
84-
85-
pay_psd_view_btn.setOnClickListener(new View.OnClickListener() {
86-
@Override
87-
public void onClick(View view) {
80+
break;
81+
case 6:
8882
startActivity(new Intent(MainActivity.this, PayPsdViewActivity.class));
89-
}
90-
});
91-
progress_btn.setOnClickListener(new View.OnClickListener() {
92-
@Override
93-
public void onClick(View view) {
83+
break;
84+
case 7:
9485
startActivity(new Intent(MainActivity.this, ProgressBarActivity.class));
95-
}
96-
});
97-
animationViewBtn.setOnClickListener(new View.OnClickListener() {
98-
@Override
99-
public void onClick(View v) {
86+
break;
87+
case 8:
10088
startActivity(new Intent(MainActivity.this, AnimationViewActivity.class));
101-
}
102-
});
103-
huaweiViewBtn.setOnClickListener(new View.OnClickListener() {
104-
@Override
105-
public void onClick(View v) {
89+
break;
90+
case 9:
10691
startActivity(new Intent(MainActivity.this, DragBallActivity.class));
107-
}
108-
});
109-
fingerBtn.setOnClickListener(new View.OnClickListener() {
110-
@Override
111-
public void onClick(View v) {
112-
startActivity(new Intent(MainActivity.this, FingerprintActivity.class));
113-
}
114-
});
115-
bannerBtn.setOnClickListener(new View.OnClickListener() {
116-
@Override
117-
public void onClick(View v) {
92+
break;
93+
case 10:
94+
startActivity(new Intent(MainActivity.this, BannerActivity.class));
95+
break;
96+
case 11:
11897
startActivity(new Intent(MainActivity.this, HoverItemActivity.class));
119-
}
120-
});
121-
122-
98+
break;
99+
}
123100
}
124-
125101
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /