Skip to content

Commit 68ba983

Browse files
committed
完成自定义Navigator的演示
1 parent 045b73c commit 68ba983

File tree

2 files changed

+92
-9
lines changed

2 files changed

+92
-9
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,83 @@
11
package net.lucode.hackware.magicindicatordemo.example;
22

3+
import android.graphics.Color;
34
import android.os.Bundle;
5+
import android.support.v4.view.ViewPager;
46
import android.support.v7.app.AppCompatActivity;
57

8+
import net.lucode.hackware.magicindicator.MagicIndicator;
9+
import net.lucode.hackware.magicindicator.ViewPagerHelper;
10+
import net.lucode.hackware.magicindicator.buildins.circlenavigator.CircleNavigator;
611
import net.lucode.hackware.magicindicatordemo.R;
12+
import net.lucode.hackware.magicindicatordemo.ext.navigator.ScaleCircleNavigator;
13+
14+
import java.util.Arrays;
15+
import java.util.List;
716

817
public class CustomNavigatorExampleActivity extends AppCompatActivity {
18+
private static final String[] CHANNELS = new String[]{"CUPCAKE", "DONUT", "ECLAIR", "GINGERBREAD", "HONEYCOMB", "ICE_CREAM_SANDWICH", "JELLY_BEAN", "KITKAT", "LOLLIPOP", "M", "NOUGAT"};
19+
private List<String> mDataList = Arrays.asList(CHANNELS);
20+
private ExamplePagerAdapter mExamplePagerAdapter = new ExamplePagerAdapter(mDataList);
21+
22+
private ViewPager mViewPager;
923

1024
@Override
1125
protected void onCreate(Bundle savedInstanceState) {
1226
super.onCreate(savedInstanceState);
1327
setContentView(R.layout.activity_custom_navigator_example_layout);
28+
29+
mViewPager = (ViewPager) findViewById(R.id.view_pager);
30+
mViewPager.setAdapter(mExamplePagerAdapter);
31+
32+
initMagicIndicator1();
33+
initMagicIndicator2();
34+
initMagicIndicator3();
35+
}
36+
37+
private void initMagicIndicator1() {
38+
MagicIndicator magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator1);
39+
CircleNavigator circleNavigator = new CircleNavigator(this);
40+
circleNavigator.setCircleCount(CHANNELS.length);
41+
circleNavigator.setCircleColor(Color.RED);
42+
circleNavigator.setCircleClickListener(new CircleNavigator.OnCircleClickListener() {
43+
@Override
44+
public void onClick(int index) {
45+
mViewPager.setCurrentItem(index);
46+
}
47+
});
48+
magicIndicator.setNavigator(circleNavigator);
49+
ViewPagerHelper.bind(magicIndicator, mViewPager);
50+
}
51+
52+
private void initMagicIndicator2() {
53+
MagicIndicator magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator2);
54+
CircleNavigator circleNavigator = new CircleNavigator(this);
55+
circleNavigator.setFollowTouch(false);
56+
circleNavigator.setCircleCount(CHANNELS.length);
57+
circleNavigator.setCircleColor(Color.RED);
58+
circleNavigator.setCircleClickListener(new CircleNavigator.OnCircleClickListener() {
59+
@Override
60+
public void onClick(int index) {
61+
mViewPager.setCurrentItem(index);
62+
}
63+
});
64+
magicIndicator.setNavigator(circleNavigator);
65+
ViewPagerHelper.bind(magicIndicator, mViewPager);
66+
}
67+
68+
private void initMagicIndicator3() {
69+
MagicIndicator magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator3);
70+
ScaleCircleNavigator scaleCircleNavigator = new ScaleCircleNavigator(this);
71+
scaleCircleNavigator.setCircleCount(CHANNELS.length);
72+
scaleCircleNavigator.setNormalCircleColor(Color.LTGRAY);
73+
scaleCircleNavigator.setSelectedCircleColor(Color.DKGRAY);
74+
scaleCircleNavigator.setCircleClickListener(new ScaleCircleNavigator.OnCircleClickListener() {
75+
@Override
76+
public void onClick(int index) {
77+
mViewPager.setCurrentItem(index);
78+
}
79+
});
80+
magicIndicator.setNavigator(scaleCircleNavigator);
81+
ViewPagerHelper.bind(magicIndicator, mViewPager);
1482
}
1583
}
Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,34 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools"
4-
android:id="@+id/activity_custom_navigator_example"
54
android:layout_width="match_parent"
65
android:layout_height="match_parent"
7-
android:paddingBottom="@dimen/activity_vertical_margin"
8-
android:paddingLeft="@dimen/activity_horizontal_margin"
9-
android:paddingRight="@dimen/activity_horizontal_margin"
10-
android:paddingTop="@dimen/activity_vertical_margin"
116
tools:context="net.lucode.hackware.magicindicatordemo.example.CustomNavigatorExampleActivity">
127

13-
<TextView
8+
<android.support.v4.view.ViewPager
9+
android:id="@+id/view_pager"
10+
android:layout_width="match_parent"
11+
android:layout_height="match_parent" />
12+
13+
<net.lucode.hackware.magicindicator.MagicIndicator
14+
android:id="@+id/magic_indicator1"
15+
android:layout_width="wrap_content"
16+
android:layout_height="@dimen/common_navigator_height"
17+
android:layout_alignParentBottom="true"
18+
android:layout_centerHorizontal="true" />
19+
20+
<net.lucode.hackware.magicindicator.MagicIndicator
21+
android:id="@+id/magic_indicator2"
22+
android:layout_width="wrap_content"
23+
android:layout_height="@dimen/common_navigator_height"
24+
android:layout_above="@+id/magic_indicator1"
25+
android:layout_centerHorizontal="true" />
26+
27+
<net.lucode.hackware.magicindicator.MagicIndicator
28+
android:id="@+id/magic_indicator3"
1429
android:layout_width="wrap_content"
15-
android:layout_height="wrap_content"
16-
android:layout_centerInParent="true"
17-
android:text="coming soon!" />
30+
android:layout_height="@dimen/common_navigator_height"
31+
android:layout_above="@id/magic_indicator2"
32+
android:layout_centerHorizontal="true" />
1833

1934
</RelativeLayout>

0 commit comments

Comments
 (0)