简书链接:被产品经理虐的android要给所有activity加上ios11大标题加滚动滑动然后一个月之后又要取消是什么体验?那么我之前是如何处理的?
文章字数:802,阅读全文大约需要3分钟
被产品经理虐的android要给所有activity加上ios11大标题加滚动滑动变成小标题。
ios说很简单,我特么估计就一个属性吧。

这么多界面,很多底部权重界面都需要单独处理的,我虽然也是用代码控制继承,但是还是有点反感变态的需求
我虽然写的很好,不是重写所有xml布局,而是通过继承 ,实现了快速解决所有问题。 全是通过java代码控制。
所以这次变态的需求果然我还是可以应付的。

我是如何封装的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162


public class IOSHeaderHeper {


private static final String TAG = "IOSHeaderHeper";
private boolean mShowIing;
public ViewGroup iosLayoutRootView;
public ViewGroup myContentView;
public AppBarLayout appbarLayout;
public TextView toolBar;
public ViewGroup headViewWrapFix;
public CollapsingToolbarLayout collapsingToolbarlayout;
public ViewGroup buttomContainer;
public TextView tvTitleBig;
private View headView;
public View viewIosHeader;
public ViewGroup keepShowArea;
public CoordinatorLayout coordinatorLayout;


public void setHeaderTitle(String str) {
toolBar.setText(str);
collapsingToolbarlayout.setTitle(str);
if(tvTitleBig!=null){
tvTitleBig.setText(str);
}
}

protected void switchLightMode() {
collapsingToolbarlayout.setCollapsedTitleTextColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));
toolBar.setTextColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));
if (tvTitleBig == null) {
Log.e(TAG, "无法设置头部");

} else {
tvTitleBig.setTextColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));

}

toolBar.setBackgroundColor(Color.WHITE);
collapsingToolbarlayout.setBackgroundColor(AppContext.getInstance().getResources().getColor(R.color.colorWhite));
}

protected void switchNightMode() {
collapsingToolbarlayout.setCollapsedTitleTextColor(AppContext.getInstance().getResources().getColor(R.color.colorWhite));
toolBar.setTextColor(AppContext.getInstance().getResources().getColor(R.color.colorWhite));
if (tvTitleBig == null) {
Log.e(TAG, "无法设置头部");

} else {
tvTitleBig.setTextColor(AppContext.getInstance().getResources().getColor(R.color.colorWhite));

}
toolBar.setBackgroundColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));
collapsingToolbarlayout.setBackgroundColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));
}

protected void onCreateViewFixFinish(View view) {
ViewGroup parent = (ViewGroup) view.getParent();
int index = parent.indexOfChild(view);
parent.removeViewAt(index);

// binding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.ios11layout_wrap, parent, false);
iosLayoutRootView = (ViewGroup) LayoutInflater.from(view.getContext()).inflate(getIos11Layout(), parent, false);
myContentView = (ViewGroup) iosLayoutRootView.findViewById(R.id.my_content_view);

coordinatorLayout = (CoordinatorLayout) iosLayoutRootView.findViewById(R.id.coordinator);
appbarLayout = (AppBarLayout) iosLayoutRootView.findViewById(R.id.appbar);


toolBar = (TextView) iosLayoutRootView.findViewById(R.id.toolbar);
keepShowArea = (ViewGroup) iosLayoutRootView.findViewById(R.id.view_keep_show_area);


buttomContainer = (ViewGroup) iosLayoutRootView.findViewById(R.id.buttom_container);
collapsingToolbarlayout = (CollapsingToolbarLayout) iosLayoutRootView.findViewById(R.id.collapsing_toolbarlayout);
headViewWrapFix = (ViewGroup) iosLayoutRootView.findViewById(R.id.head_view_wrap_fix);
myContentView.addView(view);
parent.addView(iosLayoutRootView);

// LayoutTransition transition = new LayoutTransition();
// transition.setAnimator(LayoutTransition.CHANGE_APPEARING, null);
// ((ViewGroup) binding.toolbar.getParent()).setLayoutTransition(transition);

appbarLayout.addOnOffsetChangedListener(new OnAppBarStateChangedListener() {
@Override
public void onStateChanged(AppBarLayout appBarLayout, State state) {

if (state == State.EXPANDED) {
toolBar.setVisibility(View.GONE);
Prt.w(TAG, "展开中");
} else if (state == State.COLLAPSED) {
toolBar.setVisibility(View.VISIBLE);
Prt.w(TAG, "收缩中");
} else {

}
}

@Override
public void onScrolling(AppBarLayout appBarLayout, State state) {
}
});
}

/**
* 把view移除然后添加到底部
*
* @param view
*/
public void moveViewToBottomContainer(View view) {
ViewGroup viewGroup = ((ViewGroup) view.getParent());
if (viewGroup != null) {
viewGroup.removeView(view);

}
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
buttomContainer.addView(view, params);
}

/**
* 头部插入
*
* @param
* @return
*/
public ViewGroup addHeadView() {
return addHeadView(getHeadViewDefaultResouce());
}

public ViewGroup addHeadView(int headViewResource) {
headView = LayoutInflater.from(headViewWrapFix.getContext()).inflate(headViewResource, headViewWrapFix, false);
tvTitleBig = (TextView) headView.findViewById(R.id.view_head_center);
viewIosHeader = headView.findViewById(R.id.view_head);
headViewWrapFix.addView(headView);
return headViewWrapFix;
}

public ViewGroup addHeadView(View view) {
headView = view;
tvTitleBig = (TextView) headView.findViewById(R.id.view_head_center);
viewIosHeader = headView.findViewById(R.id.view_head);
headViewWrapFix.addView(headView);
return headViewWrapFix;
}


protected boolean isNeedHead() {
return true;
}

protected int getIos11Layout() {
return R.layout.ios11layout_wrap;
}


public int getHeadViewDefaultResouce() {
return R.layout.view_head_ios11;
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
public abstract class IOSHeaderActivity extends BaseActionBarActivity {

private IOSHeaderHeper headerHeper;

@Override
protected void onCreateBefore(Bundle savedInstanceState) {
headerHeper = new IOSHeaderHeper();
}

@Override
protected View onCreateViewFix() {
return super.onCreateViewFix();
}

@Override
protected void onCreateViewFixFinish(View view) {
headerHeper.onCreateViewFixFinish(view);
}

@Override
protected int getHeadViewResouce() {
return headerHeper.getHeadViewDefaultResouce();
}


protected void switchLightMode() {
headerHeper.switchLightMode();
}

protected void switchNightMode() {
headerHeper.switchNightMode();
;
}


public void moveViewToBottomContainer(View view) {

headerHeper.moveViewToBottomContainer(view);
}



@Override
protected boolean isNeedHead() {
return true;
}

protected int getIos11Layout() {
return headerHeper.getIos11Layout();
}

@Override
protected ViewGroup addHeadView(ViewGroup view) {
return headerHeper.addHeadView();
}

@Override
public void setHeaderTitle(String str) {
headerHeper.setHeaderTitle(str);

}

protected ViewGroup getheadViewWrapFix() {
return headerHeper.headViewWrapFix;
}



}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<data></data>

<LinearLayout
android:id="@+id/root_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinator"
android:layout_width="match_parent"

android:layout_height="match_parent"
android:layout_weight="1">

<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"

android:layout_height="wrap_content">

<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbarlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorThemeColor"
app:collapsedTitleGravity="center"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentScrim="@color/transparent"
app:expandedTitleGravity="left|center_vertical"
app:layout_scrollFlags="scroll|enterAlwaysCollapsed"
app:scrimAnimationDuration="100"
app:scrimVisibleHeightTrigger="0dp"
app:titleEnabled="false">


<FrameLayout
android:id="@+id/head_view_wrap_fix"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="pin">

</FrameLayout>
<!--app:layout_scrollFlags="exitUntilCollapsed"-->
<!--上滑保留标题栏 app:layout_collapseMode-->

</android.support.design.widget.CollapsingToolbarLayout>

<TextView
android:id="@+id/toolbar"
style="@style/style_ios_small_title"
android:text="@string/app_name"
app:layout_scrollFlags="exitUntilCollapsed" />

<FrameLayout
android:id="@+id/view_keep_show_area"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="exitUntilCollapsed">



</FrameLayout>


</android.support.design.widget.AppBarLayout>


<FrameLayout
android:id="@+id/my_content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior">

</FrameLayout>


</android.support.design.widget.CoordinatorLayout>

<FrameLayout
android:id="@+id/buttom_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">

</FrameLayout>


</LinearLayout>
</layout>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
public abstract class WanNengIOSHeaderActivity extends BaseActionBarActivity {

public IOSHeaderHeper getHeaderHeper() {
return headerHeper;
}

private IOSHeaderHeper headerHeper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
protected void onCreateBefore(Bundle savedInstanceState) {
headerHeper = new IOSHeaderHeper(false);
}

@Override
protected View onCreateViewFix() {
return super.onCreateViewFix();
}

@Override
protected void onCreateViewFixFinish(View view) {
headerHeper.onCreateViewFixFinish(view);
}

@Override
protected int getHeadViewResouce() {
return headerHeper.getHeadViewDefaultResouce();
}


protected void switchLightMode() {
headerHeper.switchLightMode();
}

protected void switchNightMode() {
headerHeper.switchNightMode();
;
}


public void moveViewToBottomContainer(View view) {

headerHeper.moveViewToBottomContainer(view);
}


@Override
protected boolean isNeedHead() {
return true;
}

protected int getIos11Layout() {
return headerHeper.getIos11Layout();
}

@Override
protected ViewGroup onAddHeadView(ViewGroup view) {
return headerHeper.addHeadView();
}

@Override
public void setHeaderTitle(String str) {
headerHeper.setHeaderTitle(str);

}


那么接下来要如何改?实际上很简单了,因为我已经通过基类控制了。

某个用户界面是最复杂的 但是这个界面我也是不想改了的,而且这个界面基本上不需要改吧。我觉得。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

private void layoutView() {
//把头部切换器移动到 固定头部固定keepShowArea区域。
ViewGroup parent = (ViewGroup) headerBinding.radioGroup.getParent();
parent.removeView(headerBinding.radioGroup);
getHeaderHeper().keepShowArea.addView(headerBinding.radioGroup);

//视频区域滑动不流畅不是这个smartlayout导致的
//smartlayout移动到根部============
((ViewGroup) binding.smartLayout.getParent()).removeView(binding.smartLayout);//把刷新布局添加到根部
getHeaderHeper().iosLayoutRootView.addView(binding.smartLayout);


//把coordlayout移动到 smartlayout下面
getHeaderHeper().iosLayoutRootView.removeView(getHeaderHeper().coordinatorLayout);//把原来coordinatorLayout根部的移动到smartlayout下面
binding.smartLayout.addView(getHeaderHeper().coordinatorLayout);
//把底部buttomycontainer移动出去移动到线性布局下面 称之为修复权重让 底部按钮始终底部


binding.smartLayout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, 1));//设置权重,因为添加到了线性布局了
ViewGroup parentButtonContainer = (ViewGroup) getHeaderHeper().buttomContainer.getParent();
parentButtonContainer.removeView(getHeaderHeper().buttomContainer);
getHeaderHeper().iosLayoutRootView.addView(getHeaderHeper().buttomContainer);


//添加发送消息按钮到底部固定
LayoutInflater inflater = LayoutInflater.from(this);
viewSendMsg = inflater.inflate(R.layout.view_item_young_send_msg, getHeaderHeper().buttomContainer, false);
viewSendMsg.findViewById(R.id.btn_send_msg).setOnClickListener(this);
getHeaderHeper().moveViewToBottomContainer(viewSendMsg);


}

最后,我打算封装成一个库,可以解决底部固定问题又可以扩展控制随时可以砍掉这个功能,或者恢复这个功能

在附上我又调整过的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
package com.buyao.tv.activity.base;

import android.graphics.Color;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.design.widget.CoordinatorLayout;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;

import com.buyao.tv.R;
import com.buyao.tv.global.AppContext;
import com.buyao.tv.ui.materialdesign.OnAppBarStateChangedListener;
import com.buyao.tv.util.Prt;

/**
* Created by qssq on 2018/1/30 [email protected]
* 2个产品经理,一个产品经理说要高仿ios 给每一个页面加大标题,滑动缩放成小标题,给我的感觉他是跪舔ios的,觉得ios什么都很美,出的设计图基本上是高仿ios界面。
* 之后他被辞职了,这次来一个另外一个产品经理又要砍掉大标题。
*/

public class IOSHeaderHeper {

private View saveRootView;

public IOSHeaderHeper(boolean needIosHeader) {
this.needIosHeader = needIosHeader;
}

public IOSHeaderHeper() {

}

private static final String TAG = "IOSHeaderHeper";
private boolean mShowIing;
public ViewGroup iosLayoutRootView;
public ViewGroup myContentView;
public AppBarLayout appbarLayout;
public TextView toolBar;
public ViewGroup headViewWrapFix;
public CollapsingToolbarLayout collapsingToolbarlayout;
public ViewGroup buttomContainer;
public TextView tvTitleBig;
private View headView;
public View viewIosHeader;
public ViewGroup keepShowArea;
public CoordinatorLayout coordinatorLayout;


public boolean isNeedIosHeader() {
return needIosHeader;
}

public void setNeedIosHeader(boolean needIosHeader) {
this.needIosHeader = needIosHeader;
}

boolean needIosHeader = true;

public void setHeaderTitle(String str) {

if (!needIosHeader) {
return;
}
toolBar.setText(str);
collapsingToolbarlayout.setTitle(str);
if (tvTitleBig != null) {
tvTitleBig.setText(str);
}
}

protected void switchLightMode() {

if (!needIosHeader) {
return;
}

collapsingToolbarlayout.setCollapsedTitleTextColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));
toolBar.setTextColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));
if (tvTitleBig == null) {
Log.e(TAG, "无法设置头部");

} else {
tvTitleBig.setTextColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));

}

toolBar.setBackgroundColor(Color.WHITE);
collapsingToolbarlayout.setBackgroundColor(AppContext.getInstance().getResources().getColor(R.color.colorWhite));
}

protected void switchNightMode() {
if (!needIosHeader) {
return;
}

collapsingToolbarlayout.setCollapsedTitleTextColor(AppContext.getInstance().getResources().getColor(R.color.colorWhite));
toolBar.setTextColor(AppContext.getInstance().getResources().getColor(R.color.colorWhite));
if (tvTitleBig == null) {
Log.e(TAG, "无法设置头部");

} else {
tvTitleBig.setTextColor(AppContext.getInstance().getResources().getColor(R.color.colorWhite));

}
toolBar.setBackgroundColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));
collapsingToolbarlayout.setBackgroundColor(AppContext.getInstance().getResources().getColor(R.color.colorThemeBlack));
}

protected void onCreateViewFixFinish(View view) {


if (!needIosHeader) {
saveRootView = view;
return;
}

ViewGroup parent = (ViewGroup) view.getParent();
int index = parent.indexOfChild(view);
parent.removeViewAt(index);

// binding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.ios11layout_wrap, parent, false);
iosLayoutRootView = (ViewGroup) LayoutInflater.from(view.getContext()).inflate(getIos11Layout(), parent, false);
myContentView = (ViewGroup) iosLayoutRootView.findViewById(R.id.my_content_view);

coordinatorLayout = (CoordinatorLayout) iosLayoutRootView.findViewById(R.id.coordinator);
appbarLayout = (AppBarLayout) iosLayoutRootView.findViewById(R.id.appbar);


toolBar = (TextView) iosLayoutRootView.findViewById(R.id.toolbar);
keepShowArea = (ViewGroup) iosLayoutRootView.findViewById(R.id.view_keep_show_area);


buttomContainer = (ViewGroup) iosLayoutRootView.findViewById(R.id.buttom_container);
collapsingToolbarlayout = (CollapsingToolbarLayout) iosLayoutRootView.findViewById(R.id.collapsing_toolbarlayout);
headViewWrapFix = (ViewGroup) iosLayoutRootView.findViewById(R.id.head_view_wrap_fix);
myContentView.addView(view);
parent.addView(iosLayoutRootView);

// LayoutTransition transition = new LayoutTransition();
// transition.setAnimator(LayoutTransition.CHANGE_APPEARING, null);
// ((ViewGroup) binding.toolbar.getParent()).setLayoutTransition(transition);

appbarLayout.addOnOffsetChangedListener(new OnAppBarStateChangedListener() {
@Override
public void onStateChanged(AppBarLayout appBarLayout, State state) {

if (state == State.EXPANDED) {
toolBar.setVisibility(View.GONE);
Prt.w(TAG, "展开中");
} else if (state == State.COLLAPSED) {
toolBar.setVisibility(View.VISIBLE);
Prt.w(TAG, "收缩中");
} else {

}
}

@Override
public void onScrolling(AppBarLayout appBarLayout, State state) {
}
});
}

/**
* 把view移除然后添加到底部
*
* @param view
*/
public void moveViewToBottomContainer(View view) {
if (!needIosHeader) {
return;
}

ViewGroup viewGroup = ((ViewGroup) view.getParent());
if (viewGroup != null) {
viewGroup.removeView(view);

}
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
buttomContainer.addView(view, params);
}

/**
* 头部插入
*
* @param
* @return
*/
public ViewGroup addHeadView() {

if (!needIosHeader) {
if (saveRootView == null) {

throw new RuntimeException("抱歉,由于产品经理又要让所有界面取消大标题,于是乎我修改了很多界面,如果您看到本信息,说此界面程序员忘记修改了");
}
return addHeadView(saveRootView, getHeadViewDefaultResouce());

}

return addHeadView(getHeadViewDefaultResouce());
}

public ViewGroup addHeadView(int headViewResource) {

if (!needIosHeader) {
if (saveRootView == null) {

throw new RuntimeException("抱歉,由于产品经理又要让所有界面取消大标题,于是乎我修改了很多界面,如果您看到本信息,说此界面程序员忘记修改了");
}
return addHeadView(saveRootView, headViewResource);
}
headView = LayoutInflater.from(headViewWrapFix.getContext()).inflate(headViewResource, headViewWrapFix, false);
tvTitleBig = (TextView) headView.findViewById(R.id.view_head_center);
viewIosHeader = headView.findViewById(R.id.view_head);
headViewWrapFix.addView(headView);
return headViewWrapFix;
}

public ViewGroup addHeadView(View view) {
return addHeadView(view, getHeadViewDefaultResouce());
}

public ViewGroup addHeadView(View view, int headResource) {
if (!needIosHeader) {
view = LayoutInflater.from(view.getContext()).inflate(headResource, headViewWrapFix, false);


}
headView = view;
tvTitleBig = (TextView) headView.findViewById(R.id.view_head_center);
viewIosHeader = headView.findViewById(R.id.view_head);
headViewWrapFix.addView(headView);
return headViewWrapFix;
}


protected boolean isNeedHead() {
return true;
}

protected int getIos11Layout() {
return R.layout.ios11layout_wrap;
}


public int getHeadViewDefaultResouce() {
if(isNeedIosHeader()){
return R.layout.view_head_ios11;

}else{
return R.layout.view_head_back;
}
}
}