Skip to content

Commit 75cb87d

Browse files
committed
新增没有tab的效果演示
1 parent cd7258d commit 75cb87d

6 files changed

Lines changed: 112 additions & 18 deletions

File tree

app/src/main/java/net/lucode/hackware/magicindicatordemo/example/FixedTabExampleActivity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,11 +169,11 @@ public void onClick(View v) {
169169
public IPagerIndicator getIndicator(Context context) {
170170
LinePagerIndicator indicator = new LinePagerIndicator(context);
171171
float navigatorHeight = context.getResources().getDimension(R.dimen.common_navigator_height);
172-
float borderHeight = UIUtil.dip2px(context, 1);
173-
float lineHeight = navigatorHeight - 2 * borderHeight;
172+
float borderWidth = UIUtil.dip2px(context, 1);
173+
float lineHeight = navigatorHeight - 2 * borderWidth;
174174
indicator.setLineHeight(lineHeight);
175175
indicator.setRoundRadius(lineHeight / 2);
176-
indicator.setYOffset(borderHeight);
176+
indicator.setYOffset(borderWidth);
177177
indicator.setColors(Color.parseColor("#bc2a2a"));
178178
return indicator;
179179
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,101 @@
11
package net.lucode.hackware.magicindicatordemo.example;
22

3+
import android.content.Context;
4+
import android.graphics.Color;
35
import android.os.Bundle;
6+
import android.support.v4.view.ViewPager;
47
import android.support.v7.app.AppCompatActivity;
58

9+
import net.lucode.hackware.magicindicator.MagicIndicator;
10+
import net.lucode.hackware.magicindicator.ViewPagerHelper;
11+
import net.lucode.hackware.magicindicator.buildins.UIUtil;
12+
import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
13+
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
14+
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
15+
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
16+
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
17+
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.TriangularPagerIndicator;
18+
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.DummyPagerTitleView;
619
import net.lucode.hackware.magicindicatordemo.R;
720

21+
import java.util.Arrays;
22+
import java.util.List;
23+
824
public class NoTabOnlyIndicatorExampleActivity extends AppCompatActivity {
25+
private ViewPager mViewPager;
26+
27+
private String[] channels = new String[]{"CUPCAKE", "DONUT", "ECLAIR", "GINGERBREAD", "NOUGAT", "DONUT"};
28+
private List<String> mDataList = Arrays.asList(channels);
29+
private ExamplePagerAdapter mExamplePagerAdapter = new ExamplePagerAdapter(mDataList);
930

1031
@Override
1132
protected void onCreate(Bundle savedInstanceState) {
1233
super.onCreate(savedInstanceState);
1334
setContentView(R.layout.activity_no_tab_only_indicator_example_layout);
35+
36+
mViewPager = (ViewPager) findViewById(R.id.view_pager);
37+
mViewPager.setAdapter(mExamplePagerAdapter);
38+
39+
initMagicIndicator1();
40+
initMagicIndicator2();
41+
}
42+
43+
private void initMagicIndicator1() {
44+
MagicIndicator magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator1);
45+
magicIndicator.setBackgroundColor(Color.LTGRAY);
46+
final CommonNavigator commonNavigator = new CommonNavigator(this);
47+
commonNavigator.setAdjustMode(true);
48+
commonNavigator.setAdapter(new CommonNavigatorAdapter() {
49+
@Override
50+
public int getCount() {
51+
return mDataList == null ? 0 : mDataList.size();
52+
}
53+
54+
@Override
55+
public IPagerTitleView getTitleView(Context context, final int index) {
56+
return new DummyPagerTitleView(context);
57+
}
58+
59+
@Override
60+
public IPagerIndicator getIndicator(Context context) {
61+
LinePagerIndicator indicator = new LinePagerIndicator(context);
62+
float lineHeight = context.getResources().getDimension(R.dimen.small_navigator_height);
63+
indicator.setLineHeight(lineHeight);
64+
indicator.setColors(Color.parseColor("#40c4ff"));
65+
return indicator;
66+
}
67+
});
68+
magicIndicator.setNavigator(commonNavigator);
69+
ViewPagerHelper.bind(magicIndicator, mViewPager);
70+
}
71+
72+
private void initMagicIndicator2() {
73+
MagicIndicator magicIndicator = (MagicIndicator) findViewById(R.id.magic_indicator2);
74+
final CommonNavigator commonNavigator = new CommonNavigator(this);
75+
commonNavigator.setAdjustMode(true);
76+
commonNavigator.setAdapter(new CommonNavigatorAdapter() {
77+
@Override
78+
public int getCount() {
79+
return mDataList == null ? 0 : mDataList.size();
80+
}
81+
82+
@Override
83+
public IPagerTitleView getTitleView(Context context, final int index) {
84+
return new DummyPagerTitleView(context);
85+
}
86+
87+
@Override
88+
public IPagerIndicator getIndicator(Context context) {
89+
TriangularPagerIndicator indicator = new TriangularPagerIndicator(context);
90+
indicator.setReverse(true);
91+
float smallNavigatorHeight = context.getResources().getDimension(R.dimen.small_navigator_height);
92+
indicator.setLineHeight(UIUtil.dip2px(context, 2));
93+
indicator.setTriangleHeight((int) smallNavigatorHeight);
94+
indicator.setLineColor(Color.parseColor("#e94220"));
95+
return indicator;
96+
}
97+
});
98+
magicIndicator.setNavigator(commonNavigator);
99+
ViewPagerHelper.bind(magicIndicator, mViewPager);
14100
}
15101
}

app/src/main/res/drawable/round_indicator_bg.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<shape xmlns:android="http://schemas.android.com/apk/res/android">
3+
<solid android:color="@android:color/transparent" />
34
<corners android:radius="22.5dp" />
45
<stroke
56
android:width="1dp"
Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools"
4-
android:id="@+id/activity_no_tab_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"
6+
android:orientation="vertical"
117
tools:context="net.lucode.hackware.magicindicatordemo.example.NoTabOnlyIndicatorExampleActivity">
128

13-
<TextView
14-
android:layout_width="wrap_content"
15-
android:layout_height="wrap_content"
16-
android:layout_centerInParent="true"
17-
android:text="coming soon!" />
9+
<net.lucode.hackware.magicindicator.MagicIndicator
10+
android:id="@+id/magic_indicator1"
11+
android:layout_width="match_parent"
12+
android:layout_height="@dimen/small_navigator_height"
13+
android:layout_marginTop="@dimen/navigator_margin_top" />
1814

19-
</RelativeLayout>
15+
<net.lucode.hackware.magicindicator.MagicIndicator
16+
android:id="@+id/magic_indicator2"
17+
android:layout_width="match_parent"
18+
android:layout_height="@dimen/small_navigator_height"
19+
android:layout_marginTop="@dimen/navigator_margin_top_large" />
20+
21+
<android.support.v4.view.ViewPager
22+
android:id="@+id/view_pager"
23+
android:layout_width="match_parent"
24+
android:layout_height="0dp"
25+
android:layout_weight="1" />
26+
27+
</LinearLayout>

app/src/main/res/values/dimens.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<resources>
2-
<dimen name="navigator_margin">5dp</dimen>
3-
<dimen name="navigator_common_height">40dp</dimen>
42
<dimen name="activity_horizontal_margin">16dp</dimen>
53
<dimen name="activity_vertical_margin">16dp</dimen>
64
<dimen name="common_navigator_height">45dp</dimen>
75
<dimen name="navigator_margin_top">5dp</dimen>
6+
<dimen name="small_navigator_height">5dp</dimen>
7+
<dimen name="navigator_margin_top_large">45dp</dimen>
88
</resources>

app/src/main/res/values/styles.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,4 @@
66
<item name="colorAccent">@color/colorAccent</item>
77
<item name="android:windowBackground">@color/activity_bg</item>
88
</style>
9-
109
</resources>

0 commit comments

Comments
 (0)