Commit 4065e67bd2368637ab79dbec03c7d650e26c41b5

Authored by 姚旭斌
1 parent 0d009088

no message

app/src/main/AndroidManifest.xml
1 1 <?xml version="1.0" encoding="utf-8"?>
2 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3   - package="com.shunzhi.parent">
  3 + package="com.shunzhi.parent">
4 4  
5 5 <!-- 用于进行网络定位 -->
6   - <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  6 + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
7 7 <!-- 用于访问GPS定位 -->
8   - <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
9   - <uses-permission android:name="android.permission.GET_TASKS"/>
10   - <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
11   - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  8 + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  9 + <uses-permission android:name="android.permission.GET_TASKS" />
  10 + <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
  11 + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
12 12 <!-- Android 6.0版本可去除,用于选举信息(通道复用)的同步 -->
13   - <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
  13 + <uses-permission android:name="android.permission.WRITE_SETTINGS" />
14 14 <!-- 进行网络访问和网络状态监控相关的权限声明 -->
15   - <uses-permission android:name="android.permission.INTERNET"/>
  15 + <uses-permission android:name="android.permission.INTERNET" />
16 16 <!-- 用于获取运营商信息,用于支持提供运营商信息相关的接口 -->
17   - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  17 + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
18 18 <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
19   - <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  19 + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
20 20 <!-- 用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
21   - <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
  21 + <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
22 22 <!-- 允许对sd卡进行读写操作 -->
23   - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  23 + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
24 24 <!-- 用于申请调用A-GPS模块 -->
25   - <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
  25 + <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
26 26 <!-- 网络库使用,当网络操作时需要确保事务完成不被杀掉 -->
27   - <uses-permission android:name="android.permission.WAKE_LOCK"/>
  27 + <uses-permission android:name="android.permission.WAKE_LOCK" />
28 28 <!-- 用于读取手机硬件信息等,用于机型过滤 -->
29   - <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  29 + <uses-permission android:name="android.permission.READ_PHONE_STATE" />
30 30 <!-- 选举使用,当应用有删除或者更新时需要重新选举,复用推送通道 -->
31   - <uses-permission android:name="android.permission.BROADCAST_PACKAGE_CHANGED"/>
32   - <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REPLACED"/>
33   - <uses-permission android:name="android.permission.RESTART_PACKAGES"/>
  31 + <uses-permission android:name="android.permission.BROADCAST_PACKAGE_CHANGED" />
  32 + <uses-permission android:name="android.permission.BROADCAST_PACKAGE_REPLACED" />
  33 + <uses-permission android:name="android.permission.RESTART_PACKAGES" />
34 34 <!-- 补偿通道小米PUSH使用,不用可去除 -->
35 35 <!-- <uses-permission android:name="android.permission.GET_TASKS" /> -->
36 36 <!-- 补偿通道GCM使用,不使用可去除 -->
37   - <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
  37 + <uses-permission android:name="android.permission.GET_ACCOUNTS" />
38 38 <!-- 允许监听启动完成事件 -->
39   - <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  39 + <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
40 40 <!-- 允许访问震动器 -->
41   - <uses-permission android:name="android.permission.VIBRATE"/>
  41 + <uses-permission android:name="android.permission.VIBRATE" />
42 42 <!-- 允许task重排序 -->
43   - <uses-permission android:name="android.permission.REORDER_TASKS"/>
  43 + <uses-permission android:name="android.permission.REORDER_TASKS" />
44 44 <!-- 用于申请获取蓝牙信息进行室内定位 -->
45   - <uses-permission android:name="android.permission.BLUETOOTH"/>
46   - <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
  45 + <uses-permission android:name="android.permission.BLUETOOTH" />
  46 + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
47 47  
48 48 <!-- 接收 SDK 消息广播权限, 第三方 APP 接入时,请将 com.netease.nim.demo 替换为自己的包名 -->
49   - <uses-permission android:name="com.shunzhi.parent.permission.RECEIVE_MSG"/>
50   - <uses-permission android:name="android.permission.CALL_PHONE"/>
  49 + <uses-permission android:name="com.shunzhi.parent.permission.RECEIVE_MSG" />
  50 + <uses-permission android:name="android.permission.CALL_PHONE" />
51 51  
52 52 <application
53 53 android:name=".AppContext"
... ... @@ -59,7 +59,7 @@
59 59 android:theme="@style/Theme.AppCompat.Light.NoActionBar">
60 60  
61 61 <!-- 高德地图服务 -->
62   - <service android:name="com.amap.api.location.APSService"/>
  62 + <service android:name="com.amap.api.location.APSService" />
63 63 <!-- 高德地图密钥 -->
64 64 <!-- <meta-data -->
65 65 <!-- android:name="com.amap.api.v2.apikey" -->
... ... @@ -68,28 +68,28 @@
68 68 <!--家长慧测试APPkey-->
69 69 <meta-data
70 70 android:name="com.netease.nim.appKey"
71   - android:value="330158c080acdf4dc1092d6a74576c2c"/>
  71 + android:value="330158c080acdf4dc1092d6a74576c2c" />
72 72  
73 73 <meta-data
74 74 android:name="android.max_aspect"
75   - android:value="2.1"/>
  75 + android:value="2.1" />
76 76  
77 77 <!-- 声明云信后台服务 -->
78 78 <service
79 79 android:name="com.netease.nimlib.service.NimService"
80   - android:process=":core"/>
  80 + android:process=":core" />
81 81  
82 82 <!-- 运行后台辅助服务 -->
83 83 <service
84 84 android:name="com.netease.nimlib.service.NimService$Aux"
85   - android:process=":core"/>
  85 + android:process=":core" />
86 86  
87 87 <!-- 声明云信后台辅助服务 -->
88 88 <service
89 89 android:name="com.netease.nimlib.job.NIMJobService"
90 90 android:exported="true"
91 91 android:permission="android.permission.BIND_JOB_SERVICE"
92   - android:process=":core"/>
  92 + android:process=":core" />
93 93  
94 94 <!-- 云信SDK的监视系统启动和网络变化的广播接收器,用户开机自启动以及网络变化时候重新登录 -->
95 95 <receiver
... ... @@ -97,46 +97,47 @@
97 97 android:exported="false"
98 98 android:process=":core">
99 99 <intent-filter>
100   - <action android:name="android.intent.action.BOOT_COMPLETED"/>
101   - <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
  100 + <action android:name="android.intent.action.BOOT_COMPLETED" />
  101 + <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
102 102 </intent-filter>
103 103 </receiver>
104 104  
105 105 <!-- 云信进程间通信receiver -->
106   - <receiver android:name="com.netease.nimlib.service.ResponseReceiver"/>
  106 + <receiver android:name="com.netease.nimlib.service.ResponseReceiver" />
107 107  
108 108 <!-- 云信进程间通信service -->
109   - <service android:name="com.netease.nimlib.service.ResponseService"/>
  109 + <service android:name="com.netease.nimlib.service.ResponseService" />
110 110  
111 111 <meta-data
112 112 android:name="com.amap.api.v2.apikey"
113   - android:value="1d130afb822d8a1019e6592cbaf10bcc"/>
  113 + android:value="1d130afb822d8a1019e6592cbaf10bcc" />
114 114  
115   - <activity android:name=".ui.activity.StartActivity"
  115 + <activity
  116 + android:name=".ui.activity.StartActivity"
116 117 android:launchMode="singleInstance"
117 118 android:windowSoftInputMode="adjustPan|stateAlwaysHidden">
118 119 <intent-filter>
119   - <action android:name="android.intent.action.MAIN"/>
  120 + <action android:name="android.intent.action.MAIN" />
120 121  
121   - <category android:name="android.intent.category.LAUNCHER"/>
  122 + <category android:name="android.intent.category.LAUNCHER" />
122 123 </intent-filter>
123 124 </activity>
124 125 <!--<activity-->
125   - <!--android:name=".ui.MainActivity"-->
126   - <!--android:screenOrientation="portrait"-->
127   - <!--android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />-->
  126 + <!--android:name=".ui.MainActivity"-->
  127 + <!--android:screenOrientation="portrait"-->
  128 + <!--android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />-->
128 129 <activity
129 130 android:name=".ui.activity.MyChildActivity"
130   - android:screenOrientation="portrait"/>
131   - <activity android:name=".ui.activity.consult.ConsultOneLevelActivity"
132   - android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
133   - />
  131 + android:screenOrientation="portrait" />
  132 + <activity
  133 + android:name=".ui.activity.consult.ConsultOneLevelActivity"
  134 + android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />
134 135 <!-- <activity android:name=".ui.activity.LoginAndRegistActivity" /> -->
135 136 <activity
136 137 android:name=".ui.MainActivity"
137 138 android:launchMode="singleInstance"
138   - android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
139   - android:screenOrientation="portrait"/>
  139 + android:screenOrientation="portrait"
  140 + android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />
140 141 <activity
141 142 android:name=".ui.activity.ChildDetialActivity"
142 143 android:launchMode="singleInstance"
... ... @@ -145,26 +146,27 @@
145 146 android:name=".ui.activity.binding.CreateChildInfoActivity"
146 147 android:launchMode="singleInstance"
147 148 android:screenOrientation="portrait"
148   - android:windowSoftInputMode="adjustPan|stateHidden"/>
  149 + android:windowSoftInputMode="adjustPan|stateHidden" />
149 150 <activity
150 151 android:name=".ui.activity.binding.SelectSchoolActivity"
151 152 android:screenOrientation="portrait"
152   - android:windowSoftInputMode="adjustPan|stateHidden"/>
  153 + android:windowSoftInputMode="adjustPan|stateHidden" />
153 154  
154   - <activity android:name=".ui.activity.LoginAndRegistActivity"
155   - android:screenOrientation="portrait"
156   - />
  155 + <activity
  156 + android:name=".ui.activity.LoginAndRegistActivity"
  157 + android:screenOrientation="portrait"
  158 + android:windowSoftInputMode="adjustPan|stateHidden" />
157 159 <activity
158 160 android:name=".ui.activity.PersonInfoActivity"
159 161 android:launchMode="singleInstance"
160 162 android:screenOrientation="portrait"
161   - android:windowSoftInputMode="adjustPan|stateHidden"/>
  163 + android:windowSoftInputMode="adjustPan|stateHidden" />
162 164  
163 165 <activity
164 166 android:name=".ui.activity.binding.CheckInfoActivity"
165 167 android:launchMode="singleInstance"
166 168 android:screenOrientation="portrait"
167   - android:windowSoftInputMode="adjustPan|stateHidden"/>
  169 + android:windowSoftInputMode="adjustPan|stateHidden" />
168 170  
169 171 <activity
170 172 android:name=".ui.activity.binding.InviteCodeActivity"
... ... @@ -175,12 +177,14 @@
175 177 android:name=".ui.activity.mywebview.WebViewActivity"
176 178 android:screenOrientation="portrait" />
177 179  
178   - <activity android:name=".ui.activity.consult.ConsultTwoLevelActivity"
179   - android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
180   - android:launchMode="singleInstance"/>
  180 + <activity
  181 + android:name=".ui.activity.consult.ConsultTwoLevelActivity"
  182 + android:launchMode="singleInstance"
  183 + android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />
181 184  
182   - <activity android:name=".ui.activity.orderdetail.OrderDetailActivity"
183   - android:launchMode="singleInstance"/>
  185 + <activity
  186 + android:name=".ui.activity.orderdetail.OrderDetailActivity"
  187 + android:launchMode="singleInstance" />
184 188 </application>
185 189  
186 190 </manifest>
187 191 \ No newline at end of file
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/ConsultFragment.java
... ... @@ -130,6 +130,7 @@ public class ConsultFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consu
130 130  
131 131 private void initBanners() {
132 132 xBanner.setData(imgesUrl, describeList);
  133 + xBanner.setPointsIsVisible(false);
133 134 xBanner.setmAdapter(new XBanner.XBannerAdapter() {
134 135 @Override
135 136 public void loadBanner(XBanner banner, Object model, View view, int position) {
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/ReportFragment.java
... ... @@ -100,7 +100,7 @@ public class ReportFragment extends BaseMVPCompatFragment&lt;ReportContract.ReportP
100 100 }
101 101  
102 102 private void showDate() {
103   - tvDate.setText(selectedDate.getYear() + "年" + (selectedDate.getMonth() + 1) + "月");
  103 +// tvDate.setText(selectedDate.getYear() + "年" + (selectedDate.getMonth() + 1) + "月");
104 104 }
105 105  
106 106 private void initReportList() {
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/StartFragment.java
... ... @@ -12,7 +12,6 @@ import android.widget.TextView;
12 12 import com.share.mvpsdk.base.BasePresenter;
13 13 import com.share.mvpsdk.base.fragment.BaseMVPCompatFragment;
14 14 import com.shunzhi.parent.AppConfig;
15   -import com.shunzhi.parent.AppContext;
16 15 import com.shunzhi.parent.R;
17 16 import com.shunzhi.parent.bean.GuangGaoBean;
18 17 import com.shunzhi.parent.bean.channel.ChannelBean;
... ... @@ -132,7 +131,7 @@ public class StartFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consult
132 131 xBanner.setData(imgUrl, describeList);
133 132 xBanner.stopAutoPlay();
134 133 xBanner.setmAutoPalyTime(10000);
135   -// xBanner.setSlideScrollMode(View.OVER_SCROLL_NEVER);
  134 + xBanner.setPointsIsVisible(false);
136 135 xBanner.setmAdapter(new XBanner.XBannerAdapter() {
137 136 @Override
138 137 public void loadBanner(XBanner banner, Object model, View view, int position) {
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/loginandregistfragment/LoginAndRegistFragment.java
... ... @@ -7,7 +7,6 @@ import android.support.annotation.Nullable;
7 7 import android.text.Editable;
8 8 import android.text.TextUtils;
9 9 import android.text.TextWatcher;
10   -import android.util.Log;
11 10 import android.view.Gravity;
12 11 import android.view.LayoutInflater;
13 12 import android.view.View;
... ... @@ -37,9 +36,9 @@ public class LoginAndRegistFragment extends BaseMVPCompatFragment&lt;LoginAndRegist
37 36  
38 37 public RoundedImageView roundedImageView;
39 38 public EditText phoneNumber, idCode, password, et_password_new;
40   - public TextView get_idCode, loginAndRegister, tv_info, tv_goto, tv_goto_zhuce, tv_goto_mima;
  39 + public TextView get_idCode, loginAndRegister, tv_info, tv_goto, tv_goto_zhuce, tv_goto_mima,center_title;
41 40 public LinearLayout phoneLayout, idCodeLayout, passwordLayout, main_login, passwordLayout_new;
42   - public ImageView img_eye, img_eye_new, back_login;
  41 + public ImageView img_eye, img_eye_new, back_top;
43 42 public static String typepage;
44 43 public boolean open = false;
45 44 public boolean opennew = false;
... ... @@ -70,7 +69,8 @@ public class LoginAndRegistFragment extends BaseMVPCompatFragment&lt;LoginAndRegist
70 69 progressDialog = new MyProcessDialog(getActivity());
71 70 tv_goto_zhuce = view.findViewById(R.id.tv_goto_zhuce);
72 71 tv_goto_mima = view.findViewById(R.id.tv_goto_mima);
73   - back_login = view.findViewById(R.id.back_login);
  72 + center_title = view.findViewById(R.id.center_title);
  73 + back_top = view.findViewById(R.id.back_top);
74 74 denglu = view.findViewById(R.id.denglu);
75 75 zhuce = view.findViewById(R.id.zhuce);
76 76 main_login = view.findViewById(R.id.main_login);
... ... @@ -94,7 +94,7 @@ public class LoginAndRegistFragment extends BaseMVPCompatFragment&lt;LoginAndRegist
94 94 loginAndRegister.setOnClickListener(this);
95 95 img_eye.setOnClickListener(this);
96 96 img_eye_new.setOnClickListener(this);
97   - back_login.setOnClickListener(this);
  97 + back_top.setOnClickListener(this);
98 98 phoneNumber.addTextChangedListener(textWatcher);
99 99 idCode.addTextChangedListener(textWatcher);
100 100 password.addTextChangedListener(textWatcher);
... ... @@ -103,28 +103,25 @@ public class LoginAndRegistFragment extends BaseMVPCompatFragment&lt;LoginAndRegist
103 103 passwordLayout_new = view.findViewById(R.id.passwordLayout_new);
104 104 et_password_new = view.findViewById(R.id.et_password_new);
105 105 et_password_new.addTextChangedListener(textWatcher);
106   -
  106 + center_title.setText(typepage);
107 107 if ("登录".equals(typepage)) {
108 108 idCodeLayout.setVisibility(View.GONE);
109 109 passwordLayout_new.setVisibility(View.GONE);
110 110 loginAndRegister.setText("登录");
111 111 denglu.setVisibility(View.VISIBLE);
112 112 zhuce.setVisibility(View.GONE);
113   - back_login.setVisibility(View.INVISIBLE);
114 113 } else if ("注册".equals(typepage)) {
115 114 idCodeLayout.setVisibility(View.VISIBLE);
116 115 passwordLayout_new.setVisibility(View.GONE);
117 116 loginAndRegister.setText("注册");
118 117 denglu.setVisibility(View.GONE);
119 118 zhuce.setVisibility(View.VISIBLE);
120   - back_login.setVisibility(View.INVISIBLE);
121 119 } else if ("找回密码".equals(typepage)) {
122 120 idCodeLayout.setVisibility(View.VISIBLE);
123 121 passwordLayout_new.setVisibility(View.VISIBLE);
124 122 loginAndRegister.setText("确定");
125 123 denglu.setVisibility(View.GONE);
126 124 zhuce.setVisibility(View.GONE);
127   - back_login.setVisibility(View.VISIBLE);
128 125 }
129 126  
130 127 // roundedImageView.setOnClickListener(new View.OnClickListener() {
... ... @@ -237,8 +234,14 @@ public class LoginAndRegistFragment extends BaseMVPCompatFragment&lt;LoginAndRegist
237 234 et_password_new.setInputType(0x90);
238 235 opennew = true;
239 236 }
240   - } else if (v == back_login) {
241   - startActivity(new Intent().putExtra("type", "登录").setClass(getActivity(), LoginAndRegistActivity.class));
  237 + } else if (v == back_top) {
  238 + if("找回密码".equals(typepage)) {
  239 + startActivity(new Intent().putExtra("type", "登录").setClass(getActivity(), LoginAndRegistActivity.class));
  240 + }else if("登录".equals(typepage)){
  241 +
  242 + }else if("注册".equals(typepage)){
  243 + startActivity(new Intent().putExtra("type", "登录").setClass(getActivity(), LoginAndRegistActivity.class));
  244 + }
242 245 getActivity().finish();
243 246 }
244 247 }
... ...
app/src/main/res/drawable-xhdpi/camera.png

1.04 KB | W: | H:

1.08 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/drawable-xhdpi/pull.png

603 Bytes | W: | H:

460 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/layout/fragment_ce_ping.xml
... ... @@ -26,7 +26,7 @@
26 26 android:gravity="center"
27 27 android:paddingLeft="@dimen/size_dp_15"
28 28 android:text="杭州"
29   - android:textColor="@color/textColor"
  29 + android:textColor="@color/white"
30 30 android:textSize="@dimen/textSize16" />
31 31  
32 32 <TextView
... ...
app/src/main/res/layout/fragment_login_and_regist.xml
... ... @@ -12,18 +12,7 @@
12 12 android:layout_width="match_parent"
13 13 android:layout_height="match_parent"
14 14 android:orientation="vertical">
15   - <LinearLayout
16   - android:layout_width="match_parent"
17   - android:layout_height="wrap_content">
18   - <ImageView
19   - android:layout_marginTop="10dp"
20   - android:id="@+id/back_login"
21   - android:layout_width="60dp"
22   - android:layout_height="20dp"
23   - android:visibility="invisible"
24   - android:src="@drawable/back"
25   - />
26   - </LinearLayout>
  15 + <include layout="@layout/top"/>
27 16  
28 17 <com.makeramen.roundedimageview.RoundedImageView
29 18 android:id="@+id/photoImage"
... ... @@ -32,10 +21,9 @@
32 21 android:layout_gravity="center"
33 22 android:layout_marginTop="80dp"
34 23 android:scaleType="centerCrop"
35   - android:src="@drawable/logo"
  24 + android:src="@drawable/defphoto"
36 25 app:riv_border_width="0dp"
37   - app:riv_corner_radius="10dp"
38   - app:riv_oval="false" />
  26 + app:riv_corner_radius="60dp" />
39 27  
40 28 <LinearLayout
41 29 android:layout_width="match_parent"
... ...
app/src/main/res/layout/fragment_report.xml
... ... @@ -54,7 +54,7 @@
54 54 android:layout_height="match_parent"
55 55 android:textSize="@dimen/size_dp_16"
56 56 android:textColor="@color/xueqing_blue"
57   - android:text="功能暂不开放"
  57 + android:text="敬请期待"
58 58 android:gravity="center"
59 59 android:lineSpacingExtra="@dimen/size_dp_5"
60 60 android:id="@+id/tvNoData"
... ...
app/src/main/res/layout/layout_search.xml
... ... @@ -13,7 +13,7 @@
13 13 android:gravity="center"
14 14 android:paddingLeft="@dimen/size_dp_15"
15 15 android:text="杭州"
16   - android:textColor="@color/textColor"
  16 + android:textColor="@color/white"
17 17 android:textSize="@dimen/textSize16" />
18 18  
19 19 <FrameLayout
... ...