Skip to content

Commit f4efdea

Browse files
committed
新增在adjustMode下可自定义PagerTitle的权重
1 parent 98a2c9d commit f4efdea

File tree

3 files changed

+28
-15
lines changed

3 files changed

+28
-15
lines changed

app/src/main/java/net/lucode/hackware/magicindicatordemo/MainActivity.java

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public int getCount() {
9999
}
100100

101101
@Override
102-
public IPagerTitleView getItemView(Context context, final int index) {
102+
public IPagerTitleView getTitleView(Context context, final int index) {
103103
ClipPagerTitleView clipPagerTitleView = new ClipPagerTitleView(context);
104104
clipPagerTitleView.setText(mDataList.get(index));
105105
clipPagerTitleView.setTextColor(Color.parseColor("#f2c4c4"));
@@ -131,7 +131,7 @@ public int getCount() {
131131
}
132132

133133
@Override
134-
public IPagerTitleView getItemView(Context context, final int index) {
134+
public IPagerTitleView getTitleView(Context context, final int index) {
135135
ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context);
136136
colorTransitionPagerTitleView.setText(mDataList.get(index));
137137
colorTransitionPagerTitleView.setNormalColor(Color.GRAY);
@@ -174,7 +174,7 @@ public int getCount() {
174174
}
175175

176176
@Override
177-
public IPagerTitleView getItemView(Context context, final int index) {
177+
public IPagerTitleView getTitleView(Context context, final int index) {
178178
final ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context);
179179
colorTransitionPagerTitleView.setText(mDataList.get(index));
180180
colorTransitionPagerTitleView.setNormalColor(Color.GRAY);
@@ -223,7 +223,7 @@ public int getCount() {
223223
}
224224

225225
@Override
226-
public IPagerTitleView getItemView(Context context, final int index) {
226+
public IPagerTitleView getTitleView(Context context, final int index) {
227227
final ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context);
228228
colorTransitionPagerTitleView.setText(mDataList.get(index));
229229
colorTransitionPagerTitleView.setNormalColor(Color.GRAY);
@@ -261,6 +261,15 @@ public IPagerIndicator getIndicator(Context context) {
261261
indicator.setColorList(colorList);
262262
return indicator;
263263
}
264+
265+
@Override
266+
public float getTitleWeight(Context context, int index) {
267+
if (index == 2) {
268+
return 1.5f;
269+
} else {
270+
return 1;
271+
}
272+
}
264273
});
265274
magic_indicator3.setNavigator(commonNavigator3);
266275

@@ -275,7 +284,7 @@ public int getCount() {
275284
}
276285

277286
@Override
278-
public IPagerTitleView getItemView(Context context, final int index) {
287+
public IPagerTitleView getTitleView(Context context, final int index) {
279288
ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context);
280289
colorTransitionPagerTitleView.setText(mDataList.get(index));
281290
colorTransitionPagerTitleView.setNormalColor(Color.GRAY);
@@ -315,7 +324,7 @@ public int getCount() {
315324
}
316325

317326
@Override
318-
public IPagerTitleView getItemView(Context context, final int index) {
327+
public IPagerTitleView getTitleView(Context context, final int index) {
319328
ScaleTransitionPagerTitleView colorTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context);
320329
colorTransitionPagerTitleView.setText(mDataList.get(index));
321330
colorTransitionPagerTitleView.setTextSize(18);
@@ -356,7 +365,7 @@ public int getCount() {
356365
}
357366

358367
@Override
359-
public IPagerTitleView getItemView(Context context, final int index) {
368+
public IPagerTitleView getTitleView(Context context, final int index) {
360369
return new DummyPagerTitleView(context);
361370
}
362371

@@ -383,7 +392,7 @@ public int getCount() {
383392
}
384393

385394
@Override
386-
public IPagerTitleView getItemView(Context context, final int index) {
395+
public IPagerTitleView getTitleView(Context context, final int index) {
387396
SimplePagerTitleView simplePagerTitleView = new SimplePagerTitleView(context);
388397
simplePagerTitleView.setText(mDataList.get(index));
389398
simplePagerTitleView.setNormalColor(Color.GRAY);
@@ -429,7 +438,7 @@ public int getCount() {
429438
}
430439

431440
@Override
432-
public IPagerTitleView getItemView(Context context, final int index) {
441+
public IPagerTitleView getTitleView(Context context, final int index) {
433442
ScaleTransitionPagerTitleView colorTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context);
434443
colorTransitionPagerTitleView.setText(mDataList.get(index));
435444
colorTransitionPagerTitleView.setTextSize(18);
@@ -470,7 +479,7 @@ public int getCount() {
470479
}
471480

472481
@Override
473-
public IPagerTitleView getItemView(Context context, final int index) {
482+
public IPagerTitleView getTitleView(Context context, final int index) {
474483
SimplePagerTitleView simplePagerTitleView = new SimplePagerTitleView(context);
475484
simplePagerTitleView.setText(mDataList.get(index));
476485
simplePagerTitleView.setNormalColor(Color.parseColor("#333333"));
@@ -504,7 +513,7 @@ public int getCount() {
504513
}
505514

506515
@Override
507-
public IPagerTitleView getItemView(Context context, final int index) {
516+
public IPagerTitleView getTitleView(Context context, final int index) {
508517
SimplePagerTitleView simplePagerTitleView = new SimplePagerTitleView(context);
509518
simplePagerTitleView.setText(mDataList.get(index));
510519
simplePagerTitleView.setNormalColor(Color.parseColor("#333333"));
@@ -551,7 +560,7 @@ public int getCount() {
551560
}
552561

553562
@Override
554-
public IPagerTitleView getItemView(Context context, final int index) {
563+
public IPagerTitleView getTitleView(Context context, final int index) {
555564
CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(MainActivity.this);
556565
commonPagerTitleView.setContentView(R.layout.simple_pager_title_layout);
557566

magicindicator/src/main/java/net/lucode/hackware/magicindicator/buildins/commonnavigator/CommonNavigator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,13 +135,13 @@ private void init() {
135135
*/
136136
private void initTitlesAndIndicator() {
137137
for (int i = 0, j = mNavigatorHelper.getTotalCount(); i < j; i++) {
138-
IPagerTitleView v = mAdapter.getItemView(getContext(), i);
138+
IPagerTitleView v = mAdapter.getTitleView(getContext(), i);
139139
if (v instanceof View) {
140140
View view = (View) v;
141141
LinearLayout.LayoutParams lp;
142142
if (mAdjustMode) {
143143
lp = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT);
144-
lp.weight = 1; // 均分宽度,后期将支持在adapter中自定义weight
144+
lp.weight = mAdapter.getTitleWeight(getContext(), i);
145145
} else {
146146
lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
147147
}

magicindicator/src/main/java/net/lucode/hackware/magicindicator/buildins/commonnavigator/abs/CommonNavigatorAdapter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,14 @@ public abstract class CommonNavigatorAdapter {
1515

1616
public abstract int getCount();
1717

18-
public abstract IPagerTitleView getItemView(Context context, int index);
18+
public abstract IPagerTitleView getTitleView(Context context, int index);
1919

2020
public abstract IPagerIndicator getIndicator(Context context);
2121

22+
public float getTitleWeight(Context context, int index) {
23+
return 1;
24+
}
25+
2226
public final void registerDataSetObserver(DataSetObserver observer) {
2327
mDataSetObservable.registerObserver(observer);
2428
}

0 commit comments

Comments
 (0)