version:1.8.1

fix:
update:增加年级选择
This commit is contained in:
2024-06-12 16:05:33 +08:00
parent 512f2ed70c
commit 8024283819
17 changed files with 965 additions and 371 deletions

View File

@@ -514,7 +514,6 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
return;
}
Log.e(TAG, "onGranted: 获取权限成功");
getLocationPermission();
}
@Override
@@ -552,7 +551,7 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
Log.e(TAG, "onGranted: permissions = " + permissions + " allGranted = " + allGranted);
if (!allGranted) {
Toaster.show("获取部分权限成功,但部分权限未正常授予");
Toaster.show("获取定位权限失败");
return;
}
Log.e(TAG, "onGranted: 获取定位权限成功");
@@ -561,13 +560,13 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
@Override
public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
Log.e(TAG, "onDenied: permissions = " + permissions + " doNotAskAgain = " + doNotAskAgain);
if (doNotAskAgain) {
Toaster.show("被永久拒绝授权,请手动授予定位权限");
// 如果是被永久拒绝就跳转到应用权限系统设置页面
XXPermissions.startPermissionActivity(MainActivity.this, permissions);
} else {
Log.e(TAG, "onGranted: 获取定位权限失败");
}
// if (doNotAskAgain) {
// Toaster.show("被永久拒绝授权,请手动授予定位权限");
// // 如果是被永久拒绝就跳转到应用权限系统设置页面
// XXPermissions.startPermissionActivity(MainActivity.this, permissions);
// } else {
// Log.e(TAG, "onGranted: 获取定位权限失败");
// }
}
});
}
@@ -590,6 +589,7 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
mMMKV.encode("AgreePrivacyPolicy", 1);
privacyPolicyDialog.dismiss();
getPermission();
getLocationPermission();
}
});
privacyPolicyDialog.show();

View File

@@ -0,0 +1,275 @@
package com.uiui.zyos.base.mvvm.fragment;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import com.uiui.zyos.base.BaseFragment;
import java.lang.ref.WeakReference;
import java.lang.reflect.ParameterizedType;
/**
* @author: lml
* @date: 2021/12/15
*/
public abstract class BaseMvvmFragment<VM extends ViewModel, VDB extends ViewDataBinding> extends BaseFragment {
protected String mTag = this.getClass().getSimpleName();
/**
* 是否顯示了
*/
protected boolean mIsVisible;
/**
* 是否準備好了-Created
*/
protected boolean mHasPrepare;
protected VM mViewModel;
protected VDB mViewDataBinding;
protected Class<VM> vmClass;
//
// protected Toolbar toolbar;
// protected View statusBarView;
//
protected Bundle bundle;//来自getArguments()
protected Bundle savedInstanceState;
// protected Context context;
/**
* 上下文
*/
private WeakReference<Context> ctx;
public Context getCtx() {
return ctx == null ? null : ctx.get();
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
// this.context = context;
ctx = new WeakReference<>(context);
}
/**
* onCreate、onResume里不能调用
*
* @return
*/
public boolean isAttached() {
boolean flag = getCtx() != null && isAdded();
Log.e(" >> isAttached >>", "flag = " + flag);
return flag;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//ViewDataBinding
mViewDataBinding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false);
mViewDataBinding.setLifecycleOwner(this);
//ViewModel
vmClass = (Class<VM>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
mViewModel = new ViewModelProvider(this).get(vmClass);
//
return mViewDataBinding.getRoot();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// if (initStatusBarToolBar()) {
// toolbar = getToolbar();
// }
//注册eventbus
// if (getClass().isAnnotationPresent(BindEventBus.class))
// EventBusManager.register(this);
//
// fitsLayoutOverlap();
initDataBinding();
initView(bundle = getArguments());
//
initData(this.savedInstanceState = savedInstanceState);
//
if (mIsVisible) {
onEnter();
}
mHasPrepare = true;
//
// LiveDataBus.get().with(ConstantUtils.DATA_BUS_LOADING_FRAGMENT, Boolean.class).observe(getActivity(), bool -> {
// L.e(" >> LiveDataBus >> DATA_BUS_LOADING_FRAGMENT: %s", bool);
// if(bool) {
// showLoading(R.string.str_please_wait);
// } else {
// hideLoading();
// }
// });
}
@Override
public void onDestroyView() {
super.onDestroyView();
mHasPrepare = false;
mViewDataBinding = null;
//移除eventbus
// if (getClass().isAnnotationPresent(BindEventBus.class))
// EventBusManager.unregister(this);
//
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (mIsVisible == getUserVisibleHint())
return;
mIsVisible = getUserVisibleHint();
if (mIsVisible) {
if (!mHasPrepare)
return;
onEnter();
} else {
onExit();
}
}
@LayoutRes
protected abstract int getLayoutId();
// protected abstract Toolbar getToolbar();
// protected View getStatusView() {
// return null;
// }
protected abstract void initDataBinding();
protected abstract void initView(Bundle bundle);
protected abstract void initData(Bundle savedInstanceState);
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// fitsLayoutOverlap();
}
// protected boolean isImmersionBarEnabled() {
// return true;
// }
// protected boolean initStatusBarToolBar() {
// return true;
// }
// private void fitsLayoutOverlap() {
// if (!isImmersionBarEnabled()) return;
// if (statusBarView != null) {
// ImmersionBar.setStatusBarView(getActivity(), statusBarView);
// }
// if (toolbar != null) {
// ImmersionBar.setTitleBar(getActivity(), toolbar);
// }
// }
protected void hideInputMethod(Activity activity) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus();
if (view != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
protected void hideInputMethod(Activity activity, EditText editText) {
InputMethodManager imm = (InputMethodManager) editText.getContext().getSystemService(Activity.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus();
if (view != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
protected void showInputMethod(EditText editText) {
InputMethodManager imm = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
}
// private CustomDialog mWaitDialog;
//
// public void showLoading(@StringRes int contentID) {
// showLoading(contentID, R.color.white);
// }
//
// public void showLoading(@StringRes int contentID, @ColorRes int color) {
// hideLoading();
// DialogX.init(getActivity());
// if (color == R.color.white) {
// mWaitDialog = DialogXUtil.getInstance().showLoading(getActivity(), getString(contentID), getResources().getColor(color));
// } else {
// mWaitDialog = DialogXUtil.getInstance().showLoading_black(getActivity(), getString(contentID), getResources().getColor(color));
// }
// }
//
// public void updateLoadingTip(@StringRes int messageID, int percent) {
// try {
// if (mWaitDialog != null && mWaitDialog.isShow()) {
// TextView tvTip = mWaitDialog.getCustomView().findViewById(R.id.tv_load_tip);
// if (tvTip != null)
// tvTip.setText(getResources().getString(messageID) + (percent == -1 ? "" : percent + "%"));
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
//
// public boolean isShowLoading() {
// return mWaitDialog != null && mWaitDialog.isShow();
// }
//
// public void hideLoading() {
// try {
// boolean isShow = isShowLoading();
// L.d(" >> hideLoading :: isShow: %s", isShow);
// if (isShow)
// mWaitDialog.dismiss();
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
/**
* 進入界面
*/
protected void onEnter() {
}
/**
* 離開界面
*/
protected void onExit() {
}
}

View File

@@ -40,4 +40,7 @@ public class CommonConfig {
public static final String MANUALLY_SELECT_LOCATION_TUDE = "map_manually_select_tude";
/*默认北京原点*/
public static final String DEFAULT_LOCATION_TUDE = "116.40529,39.90499";
public static final String APPOINT_PERIOD_NAME = "appoint_period_name_key";
}

View File

@@ -5,15 +5,23 @@ import android.media.Image;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.TextView;
import com.tencent.mmkv.MMKV;
import com.uiui.zyos.R;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.base.mvvm.fragment.BaseMvvmFragment;
import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.databinding.FragmentPrecisionBinding;
import com.uiui.zyos.fragment.ar.ARStudyFragment;
import com.uiui.zyos.fragment.chinese.ChinesePresenter;
import com.uiui.zyos.utils.OpenApkUtils;
@@ -26,9 +34,11 @@ import butterknife.ButterKnife;
* Use the {@link PrecisionFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class PrecisionFragment extends BaseFragment {
public class PrecisionFragment extends BaseMvvmFragment<PrecisionViewModel, FragmentPrecisionBinding> {
private static final String TAG = PrecisionFragment.class.getSimpleName();
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
@BindView(R.id.iv_bunk)
ImageView iv_bunk;
@BindView(R.id.iv_paper)
@@ -40,9 +50,6 @@ public class PrecisionFragment extends BaseFragment {
@BindView(R.id.iv_favorites)
ImageView iv_favorites;
private View rootView;// 设置为全局的
private Activity mContext;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -76,31 +83,43 @@ public class PrecisionFragment extends BaseFragment {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
protected int getLayoutId() {
return R.layout.fragment_precision;
}
@Override
protected void initDataBinding() {
mViewModel.setCtx(getCtx());
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
mViewDataBinding.setClick(new BtnClick());
}
@Override
protected void initView(Bundle bundle) {
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
String grade = mMMKV.decodeString(CommonConfig.APPOINT_PERIOD_NAME, OpenApkUtils.NAME_PRIMARY_SCHOOL);
mViewDataBinding.tvGrade.setText(grade);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
Log.e(TAG, "onCreateView: ");
if (null != rootView) {
ViewGroup parent = (ViewGroup) rootView.getParent();
if (null != parent) {
parent.removeView(rootView);
protected void initData(Bundle savedInstanceState) {
mViewModel.getTypeData().observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
mMMKV.encode(CommonConfig.APPOINT_PERIOD_NAME,s);
mViewDataBinding.tvGrade.setText(s);
}
} else { // 如ongoing果rootView为空 ,就实例化该视图
rootView = inflater.inflate(R.layout.fragment_precision, container, false);
mContext = (Activity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
@@ -111,7 +130,6 @@ public class PrecisionFragment extends BaseFragment {
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
@Override
@@ -125,66 +143,97 @@ public class PrecisionFragment extends BaseFragment {
}
}
private ARStudyFragment.UserVisibleHintCallback mUserVisibleHintCallback;
private UserVisibleHintCallback mUserVisibleHintCallback;
public interface UserVisibleHintCallback {
void onUserVisibleHint();
}
public void setUserVisibleHintCallback(ARStudyFragment.UserVisibleHintCallback userVisibleHintCallback) {
public void setUserVisibleHintCallback(UserVisibleHintCallback userVisibleHintCallback) {
mUserVisibleHintCallback = userVisibleHintCallback;
}
private void initView() {
iv_bunk.setOnClickListener(new View.OnClickListener() {
private void showPopupWindow(View view) {
// 一个自定义的布局,作为显示的内容
View contentView = LayoutInflater.from(getCtx()).inflate(
R.layout.popup_fault_type, null);
PopupWindow popupWindow = new PopupWindow(contentView,
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
// 设置按钮的点击事件
TextView tv_type1 = contentView.findViewById(R.id.tv_type1);
tv_type1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(0, "语文");
} else {
OpenApkUtils.getInstance().openPrecision("1");
}
public void onClick(View v) {
mViewModel.getTypeData().setValue(OpenApkUtils.NAME_PRIMARY_SCHOOL);
popupWindow.dismiss();
}
});
iv_paper.setOnClickListener(new View.OnClickListener() {
TextView tv_type2 = contentView.findViewById(R.id.tv_type2);
tv_type2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(5, "语文");
} else {
OpenApkUtils.getInstance().openPrecision("3");
}
public void onClick(View v) {
mViewModel.getTypeData().setValue(OpenApkUtils.NAME_MIDDLE_SCHOOL);
popupWindow.dismiss();
}
});
iv_test.setOnClickListener(new View.OnClickListener() {
TextView tv_type3 = contentView.findViewById(R.id.tv_type3);
tv_type3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(1, "语文");
} else {
OpenApkUtils.getInstance().openPrecision("2");
}
public void onClick(View v) {
mViewModel.getTypeData().setValue(OpenApkUtils.NAME_HIGH_SCHOOL);
popupWindow.dismiss();
}
});
iv_book.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(4, "语文");
} else {
OpenApkUtils.getInstance().openPrecision("4");
}
// 如果不设置PopupWindow的背景无论是点击外部区域还是Back键都无法dismiss弹框
// 我觉得这里是API的一个bug
// popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.popup_background));
// 设置好参数之后再show
popupWindow.showAsDropDown(view, 0, 4, Gravity.CENTER);
}
public class BtnClick {
public void openPrecisionHome(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(0, "");
} else {
OpenApkUtils.getInstance().openPrecision("1");
}
});
iv_favorites.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(3, "语文");
} else {
OpenApkUtils.getInstance().openPrecision("5");
}
}
public void openPrecisionTestPaper(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(8, "");
} else {
OpenApkUtils.getInstance().openPrecision("3");
}
});
}
public void openPrecisionSpecial(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(7, "");
} else {
OpenApkUtils.getInstance().openPrecision("2");
}
}
public void openPrecisionQuestionBook(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(4, "");
} else {
OpenApkUtils.getInstance().openPrecision("4");
}
}
public void openPrecisionFavorites(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
OpenApkUtils.getInstance().openAiPrecision(3, "");
} else {
OpenApkUtils.getInstance().openPrecision("5");
}
}
public void showWindow(View view) {
showPopupWindow(view);
}
}
}

View File

@@ -0,0 +1,25 @@
package com.uiui.zyos.fragment.precision;
import androidx.lifecycle.MutableLiveData;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiui.zyos.base.mvvm.BaseViewModel;
import com.uiui.zyos.databinding.FragmentPrecisionBinding;
public class PrecisionViewModel extends BaseViewModel<FragmentPrecisionBinding, FragmentEvent> {
@Override
public FragmentPrecisionBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
private MutableLiveData<String> mTypeData = new MutableLiveData<>();
public MutableLiveData<String> getTypeData() {
return mTypeData;
}
}

View File

@@ -100,7 +100,7 @@ public class SubjectFragment extends BaseFragment {
// }
// });
mPrecisionFragment = new PrecisionFragment();
mPrecisionFragment.setUserVisibleHintCallback(new ARStudyFragment.UserVisibleHintCallback() {
mPrecisionFragment.setUserVisibleHintCallback(new PrecisionFragment.UserVisibleHintCallback() {
@Override
public void onUserVisibleHint() {
if (mViewPager != null) {

View File

@@ -359,6 +359,17 @@ public class OpenApkUtils {
/**
* page_navigate 写死传0
* <p>
* key:"page_navigate" 说明:
* 0主页
* 3收藏夹
* 4错题本
* 7考点学测
* 8一键诊断
* 组卷中心5
* 阶段测1
* 专项测2
* <p>
* appoint_subject_list 不需要传
* appoint_period_name 这个是学段,一定要传
* <p>
@@ -379,12 +390,15 @@ public class OpenApkUtils {
Toaster.show("应用未安装");
return false;
}
String grade = mMMKV.decodeString(CommonConfig.APPOINT_PERIOD_NAME, NAME_PRIMARY_SCHOOL);
ComponentName cn = new ComponentName(packageName, className);
Intent intent = new Intent();
intent.setComponent(cn);
intent.putExtra("page_navigate", page);
intent.putExtra("appoint_subject_name", subject);
intent.putExtra("appoint_period_name", NAME_HIGH_SCHOOL);
if (!TextUtils.isEmpty(subject)) {
intent.putExtra("appoint_subject_name", subject);
}
intent.putExtra("appoint_period_name", grade);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
try {

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:endColor="#6682fa"
android:startColor="#556bf1" />
<!-- 圆角的幅度 -->
<corners
android:bottomLeftRadius="@dimen/dp_12"
android:bottomRightRadius="@dimen/dp_12"
android:topLeftRadius="@dimen/dp_12"
android:topRightRadius="@dimen/dp_12" />
<padding
android:bottom="@dimen/dp_2"
android:left="@dimen/dp_8"
android:right="@dimen/dp_8"
android:top="@dimen/dp_2" />
</shape>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:endColor="#6682fa"
android:startColor="#556bf1" />
<!-- 圆角的幅度 -->
<corners
android:bottomLeftRadius="@dimen/dp_4"
android:bottomRightRadius="@dimen/dp_4"
android:topLeftRadius="@dimen/dp_4"
android:topRightRadius="@dimen/dp_4" />
<padding
android:bottom="@dimen/dp_2"
android:left="@dimen/dp_8"
android:right="@dimen/dp_8"
android:top="@dimen/dp_2" />
</shape>

View File

@@ -1,130 +1,176 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.precision.PrecisionFragment">
<androidx.constraintlayout.widget.ConstraintLayout
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintVertical_bias="0.35"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_210"
android:background="@drawable/precision_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.35">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/constraintLayout3"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_210"
android:background="@drawable/precision_box"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="人教版"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView2" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView2"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_15"
android:background="@drawable/grade_bg"
android:onClick="@{click::showWindow}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@+id/tv_grade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="小学"
android:textColor="#dcf2ff"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="@dimen/dp_8"
android:layout_height="@dimen/dp_8"
android:layout_marginStart="@dimen/dp_4"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_pull"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tv_grade"
app:layout_constraintTop_toTopOf="@+id/tv_grade" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="人教版"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView2" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:maxLines="1"
android:text="AI精准学"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:maxLines="1"
android:text="AI精准学"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
app:layout_constraintTop_toBottomOf="@+id/constraintLayout">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout">
<ImageView
android:id="@+id/iv_bunk"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_163"
android:onClick="@{click::openPrecisionHome}"
android:src="@drawable/precision_question_bank"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_bunk"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_163"
android:src="@drawable/precision_question_bank"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_paper"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_77"
android:layout_marginStart="@dimen/dp_9"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionTestPaper}"
android:scaleType="centerCrop"
android:src="@drawable/precision_test_paper"
app:layout_constraintStart_toEndOf="@+id/iv_bunk"
app:layout_constraintTop_toTopOf="@+id/iv_bunk" />
<ImageView
android:id="@+id/iv_paper"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_77"
android:layout_marginStart="@dimen/dp_9"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_test_paper"
app:layout_constraintStart_toEndOf="@+id/iv_bunk"
app:layout_constraintTop_toTopOf="@+id/iv_bunk" />
<ImageView
android:id="@+id/iv_test"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_77"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionSpecial}"
android:scaleType="centerCrop"
android:src="@drawable/precision_stage_test"
app:layout_constraintBottom_toBottomOf="@+id/iv_bunk"
app:layout_constraintStart_toStartOf="@+id/iv_paper" />
<ImageView
android:id="@+id/iv_test"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_77"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_stage_test"
app:layout_constraintBottom_toBottomOf="@+id/iv_bunk"
app:layout_constraintStart_toStartOf="@+id/iv_paper" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_book"
android:layout_width="@dimen/dp_141"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_10"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionQuestionBook}"
android:scaleType="centerCrop"
android:src="@drawable/precision_wrong_book"
app:layout_constraintStart_toEndOf="@+id/constraintLayout3"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_favorites"
android:layout_width="@dimen/dp_141"
android:layout_height="@dimen/dp_100"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionFavorites}"
android:scaleType="centerCrop"
android:src="@drawable/precision_favorites"
app:layout_constraintBottom_toBottomOf="@+id/constraintLayout3"
app:layout_constraintStart_toStartOf="@+id/iv_book" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_book"
android:layout_width="@dimen/dp_141"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_10"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_wrong_book"
app:layout_constraintStart_toEndOf="@+id/constraintLayout3"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_favorites"
android:layout_width="@dimen/dp_141"
android:layout_height="@dimen/dp_100"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_favorites"
app:layout_constraintBottom_toBottomOf="@+id/constraintLayout3"
app:layout_constraintStart_toStartOf="@+id/iv_book" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</FrameLayout>
</layout>

View File

@@ -1,128 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.precision.PrecisionFragment">
<androidx.constraintlayout.widget.ConstraintLayout
<data>
<variable
name="click"
type="com.uiui.zyos.fragment.precision.PrecisionFragment.BtnClick" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintVertical_bias="0.35"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
android:layout_width="@dimen/dp_287"
android:layout_height="@dimen/dp_168"
android:background="@drawable/precision_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.35">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/constraintLayout3"
android:layout_width="@dimen/dp_287"
android:layout_height="@dimen/dp_168"
android:background="@drawable/precision_box"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="人教版"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView2" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView2"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_15"
android:background="@drawable/grade_bg"
android:onClick="@{click::showWindow}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@+id/tv_grade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="小学"
android:textColor="#dcf2ff"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="@dimen/dp_8"
android:layout_height="@dimen/dp_8"
android:layout_marginStart="@dimen/dp_4"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_pull"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tv_grade"
app:layout_constraintTop_toTopOf="@+id/tv_grade" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="人教版"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView2" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_6"
android:maxLines="1"
android:text="AI精准学"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_6"
android:maxLines="1"
android:text="AI精准学"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/constraintLayout">
<ImageView
android:id="@+id/iv_bunk"
android:layout_width="@dimen/dp_128"
android:layout_height="@dimen/dp_130"
android:onClick="@{click::openPrecisionHome}"
android:src="@drawable/precision_question_bank"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_paper"
android:layout_width="@dimen/dp_128"
android:layout_height="@dimen/dp_61"
android:layout_marginStart="@dimen/dp_9"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionTestPaper}"
android:scaleType="centerCrop"
android:src="@drawable/precision_test_paper"
app:layout_constraintStart_toEndOf="@+id/iv_bunk"
app:layout_constraintTop_toTopOf="@+id/iv_bunk" />
<ImageView
android:id="@+id/iv_test"
android:layout_width="@dimen/dp_128"
android:layout_height="@dimen/dp_61"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionSpecial}"
android:scaleType="centerCrop"
android:src="@drawable/precision_stage_test"
app:layout_constraintBottom_toBottomOf="@+id/iv_bunk"
app:layout_constraintStart_toStartOf="@+id/iv_paper" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout">
<ImageView
android:id="@+id/iv_book"
android:layout_width="@dimen/dp_112"
android:layout_height="@dimen/dp_80"
android:layout_marginStart="@dimen/dp_10"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionQuestionBook}"
android:scaleType="centerCrop"
android:src="@drawable/precision_wrong_book"
app:layout_constraintStart_toEndOf="@+id/constraintLayout3"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_bunk"
android:layout_width="@dimen/dp_128"
android:layout_height="@dimen/dp_130"
android:src="@drawable/precision_question_bank"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_paper"
android:layout_width="@dimen/dp_128"
android:layout_height="@dimen/dp_61"
android:layout_marginStart="@dimen/dp_9"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_test_paper"
app:layout_constraintStart_toEndOf="@+id/iv_bunk"
app:layout_constraintTop_toTopOf="@+id/iv_bunk" />
<ImageView
android:id="@+id/iv_test"
android:layout_width="@dimen/dp_128"
android:layout_height="@dimen/dp_61"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_stage_test"
app:layout_constraintBottom_toBottomOf="@+id/iv_bunk"
app:layout_constraintStart_toStartOf="@+id/iv_paper" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_favorites"
android:layout_width="@dimen/dp_112"
android:layout_height="@dimen/dp_80"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionFavorites}"
android:scaleType="centerCrop"
android:src="@drawable/precision_favorites"
app:layout_constraintBottom_toBottomOf="@+id/constraintLayout3"
app:layout_constraintStart_toStartOf="@+id/iv_book" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_book"
android:layout_width="@dimen/dp_112"
android:layout_height="@dimen/dp_80"
android:layout_marginStart="@dimen/dp_10"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_wrong_book"
app:layout_constraintStart_toEndOf="@+id/constraintLayout3"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_favorites"
android:layout_width="@dimen/dp_112"
android:layout_height="@dimen/dp_80"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_favorites"
app:layout_constraintBottom_toBottomOf="@+id/constraintLayout3"
app:layout_constraintStart_toStartOf="@+id/iv_book" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</FrameLayout>
</layout>

View File

@@ -1,130 +1,176 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.precision.PrecisionFragment">
<androidx.constraintlayout.widget.ConstraintLayout
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintVertical_bias="0.35"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_210"
android:background="@drawable/precision_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.35">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/constraintLayout3"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_210"
android:background="@drawable/precision_box"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="人教版"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView2" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView2"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_15"
android:background="@drawable/grade_bg"
android:onClick="@{click::showWindow}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@+id/tv_grade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="小学"
android:textColor="#dcf2ff"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="@dimen/dp_8"
android:layout_height="@dimen/dp_8"
android:layout_marginStart="@dimen/dp_4"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_pull"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tv_grade"
app:layout_constraintTop_toTopOf="@+id/tv_grade" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="人教版"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView2" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:maxLines="1"
android:text="AI精准学"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:maxLines="1"
android:text="AI精准学"
android:textColor="@color/white"
android:textSize="@dimen/sp_14"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
app:layout_constraintTop_toBottomOf="@+id/constraintLayout">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout">
<ImageView
android:id="@+id/iv_bunk"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_163"
android:onClick="@{click::openPrecisionHome}"
android:src="@drawable/precision_question_bank"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_bunk"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_163"
android:src="@drawable/precision_question_bank"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_paper"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_77"
android:layout_marginStart="@dimen/dp_9"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionTestPaper}"
android:scaleType="centerCrop"
android:src="@drawable/precision_test_paper"
app:layout_constraintStart_toEndOf="@+id/iv_bunk"
app:layout_constraintTop_toTopOf="@+id/iv_bunk" />
<ImageView
android:id="@+id/iv_paper"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_77"
android:layout_marginStart="@dimen/dp_9"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_test_paper"
app:layout_constraintStart_toEndOf="@+id/iv_bunk"
app:layout_constraintTop_toTopOf="@+id/iv_bunk" />
<ImageView
android:id="@+id/iv_test"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_77"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionSpecial}"
android:scaleType="centerCrop"
android:src="@drawable/precision_stage_test"
app:layout_constraintBottom_toBottomOf="@+id/iv_bunk"
app:layout_constraintStart_toStartOf="@+id/iv_paper" />
<ImageView
android:id="@+id/iv_test"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_77"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_stage_test"
app:layout_constraintBottom_toBottomOf="@+id/iv_bunk"
app:layout_constraintStart_toStartOf="@+id/iv_paper" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_book"
android:layout_width="@dimen/dp_141"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_10"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionQuestionBook}"
android:scaleType="centerCrop"
android:src="@drawable/precision_wrong_book"
app:layout_constraintStart_toEndOf="@+id/constraintLayout3"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_favorites"
android:layout_width="@dimen/dp_141"
android:layout_height="@dimen/dp_100"
android:adjustViewBounds="true"
android:onClick="@{click::openPrecisionFavorites}"
android:scaleType="centerCrop"
android:src="@drawable/precision_favorites"
app:layout_constraintBottom_toBottomOf="@+id/constraintLayout3"
app:layout_constraintStart_toStartOf="@+id/iv_book" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_book"
android:layout_width="@dimen/dp_141"
android:layout_height="@dimen/dp_100"
android:layout_marginStart="@dimen/dp_10"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_wrong_book"
app:layout_constraintStart_toEndOf="@+id/constraintLayout3"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_favorites"
android:layout_width="@dimen/dp_141"
android:layout_height="@dimen/dp_100"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/precision_favorites"
app:layout_constraintBottom_toBottomOf="@+id/constraintLayout3"
app:layout_constraintStart_toStartOf="@+id/iv_book" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</FrameLayout>
</layout>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="@dimen/dp_52"
android:layout_height="wrap_content"
android:background="@drawable/grade_pop_bg"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_type1"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:gravity="center"
android:text="小学"
android:textColor="#dcf2ff"
android:textSize="@dimen/sp_9" />
<TextView
android:id="@+id/tv_type2"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:gravity="center"
android:text="初中"
android:textColor="#dcf2ff"
android:textSize="@dimen/sp_9" />
<TextView
android:id="@+id/tv_type3"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:gravity="center"
android:text="高中"
android:textColor="#dcf2ff"
android:textSize="@dimen/sp_9" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>