add: 主页面+页面切换

This commit is contained in:
SunnyQjm committed 2020-06-11 18:22:24 +08:00
1 parent 8447712d14
commit c3c6c7c135
28 files changed
+568 -100

No files matched your search

@@ -0,0 +1,24 @@
package cn.tsr.personal_drug_management.activity.base
import cn.qjm253.quick_android_base.extensions.toast
import cn.qjm253.quick_android_mvp.base.fragment.BaseQuickAndroidMVPFragment
import cn.qjm253.quick_android_mvp.base.mvp.BasePresenter
import cn.tsr.personal_drug_management.activity.base.mvp.MINVpnBaseView
abstract class MINVpnBaseFragment<P : BasePresenter<*, *>> : BaseQuickAndroidMVPFragment<P>(),
MINVpnBaseView {
override fun showWarning(msg: String) {
activity?.toast(msg)
}
override fun showSuccess(msg: String) {
activity?.toast(msg)
}
override fun showError(msg: String) {
activity?.toast(msg)
}
}
@@ -1,19 +1,25 @@
package cn.tsr.personal_drug_management.activity.main
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.viewpager.widget.ViewPager
import cn.tsr.personal_drug_management.activity.base.MINVpnBaseActivity
import cn.tsr.personal_drug_management.activity.setting.SettingActivity
import cn.qjm253.quick_android_base.extensions.alphaAnimation
import cn.qjm253.quick_android_base.extensions.animer
import cn.qjm253.quick_android_base.extensions.jumpTo
import cn.qjm253.quick_android_easy_bar.EasyBar
import cn.qjm253.quick_android_easy_bar.init
import cn.tsr.personal_drug_management.R
import com.github.ybq.android.spinkit.style.DoubleBounce
import cn.tsr.personal_drug_management.activity.main.health_records.HealthRecordsFragment
import cn.tsr.personal_drug_management.activity.main.medical_records.MedicalRecordsFragment
import cn.tsr.personal_drug_management.activity.main.mine.MineFragment
import cn.tsr.personal_drug_management.activity.main.sport.SportFragment
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.bar_item.*
class MainActivity : MINVpnBaseActivity<MainActivityPresenter>(), MainActivityContract.View {
companion object {
private const val BOTTOM_ITEM_MEDICAL_RECORDS = 0
private const val BOTTOM_ITEM_SPORT = 1
private const val BOTTOM_ITEM_HEALTH_RECORDS = 2
private const val BOTTOM_ITEM_MINE = 3
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
@@ -21,37 +27,95 @@ class MainActivity : MINVpnBaseActivity<MainActivityPresenter>(), MainActivityCo
initView()
}
private var isConnected = false
private fun initView() {
easyBar.init(
EasyBar.Mode.ICON,
"主页",
rightRes = R.drawable.setting,
tinColor = R.color.white,
leftRes = R.drawable.menu,
rightCallback = {
jumpTo(SettingActivity::class.java)
val fragmentList = mutableListOf<Fragment>()
fragmentList.add(MedicalRecordsFragment.newInstance())
fragmentList.add(SportFragment.newInstance())
fragmentList.add(HealthRecordsFragment.newInstance())
fragmentList.add(MineFragment.newInstance())
val adapter = MainAdapter(supportFragmentManager, fragmentList)
viewPager.adapter = adapter
viewPager.setScroll(true)
viewPager.offscreenPageLimit = 4
viewPager.currentItem = 0
viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
)
spinKit.setIndeterminateDrawable(DoubleBounce())
btnConnect.setOnClickListener {
btnConnect.isClickable = false
btnConnect.animer(btnConnect.alphaAnimation(1.0f, 0.3f), duration = 0)
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
changeItem(position, false)
}
})
llBottomItemMedicalRecords.setOnClickListener { changeItem(BOTTOM_ITEM_MEDICAL_RECORDS) }
llBottomItemSport.setOnClickListener { changeItem(BOTTOM_ITEM_SPORT) }
llBottomItemHealth.setOnClickListener { changeItem(BOTTOM_ITEM_HEALTH_RECORDS) }
llBottomItemMine.setOnClickListener { changeItem(BOTTOM_ITEM_MINE) }
// 模拟异步事件
btnConnect.postDelayed({
btnConnect.isClickable = true
if (!isConnected) {
btnConnect.setImageResource(R.drawable.security)
} else {
btnConnect.setImageResource(R.drawable.launch)
}
isConnected = !isConnected
btnConnect.animer(btnConnect.alphaAnimation(0.3f, 1.0f), duration = 1000)
}, 2000)
}
private fun changeItem(position: Int, setPosition: Boolean = true) {
if (setPosition) {
viewPager.currentItem = position
}
when (position) {
BOTTOM_ITEM_MEDICAL_RECORDS -> {
imgBottomItemMedicalRecords.updateDrawablesTinColor(R.color.colorPrimary)
imgBottomItemSport.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemHealth.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemMine.updateDrawablesTinColor(R.color.light_grey)
tvBottomItemMedicalRecords.setTextColor(resources.getColor(R.color.colorPrimary))
tvBottomItemSport.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemHealth.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemMine.setTextColor(resources.getColor(R.color.light_grey))
}
BOTTOM_ITEM_SPORT -> {
imgBottomItemMedicalRecords.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemSport.updateDrawablesTinColor(R.color.colorPrimary)
imgBottomItemHealth.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemMine.updateDrawablesTinColor(R.color.light_grey)
tvBottomItemMedicalRecords.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemSport.setTextColor(resources.getColor(R.color.colorPrimary))
tvBottomItemHealth.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemMine.setTextColor(resources.getColor(R.color.light_grey))
}
BOTTOM_ITEM_HEALTH_RECORDS -> {
imgBottomItemMedicalRecords.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemSport.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemHealth.updateDrawablesTinColor(R.color.colorPrimary)
imgBottomItemMine.updateDrawablesTinColor(R.color.light_grey)
tvBottomItemMedicalRecords.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemSport.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemHealth.setTextColor(resources.getColor(R.color.colorPrimary))
tvBottomItemMine.setTextColor(resources.getColor(R.color.light_grey))
}
BOTTOM_ITEM_MINE -> {
imgBottomItemMedicalRecords.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemSport.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemHealth.updateDrawablesTinColor(R.color.light_grey)
imgBottomItemMine.updateDrawablesTinColor(R.color.colorPrimary)
tvBottomItemMedicalRecords.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemSport.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemHealth.setTextColor(resources.getColor(R.color.light_grey))
tvBottomItemMine.setTextColor(resources.getColor(R.color.colorPrimary))
}
}
}
@@ -0,0 +1,17 @@
package cn.tsr.personal_drug_management.activity.main
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
class MainAdapter(fm: FragmentManager, private val fragments: MutableList<Fragment>) :
FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
override fun getItem(position: Int): Fragment {
return fragments[position]
}
override fun getCount(): Int {
return fragments.size
}
}
@@ -0,0 +1,27 @@
package cn.tsr.personal_drug_management.activity.main.health_records
import cn.qjm253.quick_android_base.params.IntentParam
import cn.tsr.personal_drug_management.R
import cn.tsr.personal_drug_management.activity.base.MINVpnBaseFragment
class HealthRecordsFragment : MINVpnBaseFragment<HealthRecordsFragmentPresenter>(),
HealthRecordsFragmentContract.View {
companion object {
fun newInstance(intentParam: IntentParam? = null): HealthRecordsFragment {
return newInstance_(HealthRecordsFragment::class.java, intentParam)
}
}
override fun getRes(): Int = R.layout.fragment_health_records
override fun initView() {
}
override fun initialLoadData() {
}
override fun onCreatePresenter(): HealthRecordsFragmentPresenter =
HealthRecordsFragmentPresenter(this)
}
@@ -0,0 +1,18 @@
package cn.tsr.personal_drug_management.activity.main.health_records
import cn.qjm253.quick_android_mvp.base.mvp.BaseModel
import cn.qjm253.quick_android_mvp.base.mvp.BasePresenter
import cn.tsr.personal_drug_management.activity.base.mvp.MINVpnBaseView
interface HealthRecordsFragmentContract {
interface View : MINVpnBaseView {
}
interface Model : BaseModel {
}
abstract class Presenter : BasePresenter<View, Model>() {
}
}
@@ -0,0 +1,3 @@
package cn.tsr.personal_drug_management.activity.main.health_records
class HealthRecordsFragmentModel(val mPresenter: HealthRecordsFragmentPresenter) : HealthRecordsFragmentContract.Model
@@ -0,0 +1,9 @@
package cn.tsr.personal_drug_management.activity.main.health_records
class HealthRecordsFragmentPresenter(healthRecordsFragment: HealthRecordsFragment) :
HealthRecordsFragmentContract.Presenter() {
init {
mView = healthRecordsFragment
mModel = HealthRecordsFragmentModel(this)
}
}
@@ -0,0 +1,27 @@
package cn.tsr.personal_drug_management.activity.main.medical_records
import cn.qjm253.quick_android_base.params.IntentParam
import cn.tsr.personal_drug_management.R
import cn.tsr.personal_drug_management.activity.base.MINVpnBaseFragment
class MedicalRecordsFragment : MINVpnBaseFragment<MedicalRecordsFragmentPresenter>(),
MedicalRecordsFragmentContract.View {
companion object {
fun newInstance(intentParam: IntentParam? = null): MedicalRecordsFragment {
return newInstance_(MedicalRecordsFragment::class.java, intentParam)
}
}
override fun getRes(): Int = R.layout.fragment_medical_records
override fun initView() {
}
override fun initialLoadData() {
}
override fun onCreatePresenter(): MedicalRecordsFragmentPresenter =
MedicalRecordsFragmentPresenter(this)
}
@@ -0,0 +1,18 @@
package cn.tsr.personal_drug_management.activity.main.medical_records
import cn.qjm253.quick_android_mvp.base.mvp.BaseModel
import cn.qjm253.quick_android_mvp.base.mvp.BasePresenter
import cn.tsr.personal_drug_management.activity.base.mvp.MINVpnBaseView
interface MedicalRecordsFragmentContract {
interface View : MINVpnBaseView {
}
interface Model : BaseModel {
}
abstract class Presenter : BasePresenter<View, Model>() {
}
}
@@ -0,0 +1,3 @@
package cn.tsr.personal_drug_management.activity.main.medical_records
class MedicalRecordsFragmentModel(val mPresenter: MedicalRecordsFragmentPresenter) : MedicalRecordsFragmentContract.Model
@@ -0,0 +1,10 @@
package cn.tsr.personal_drug_management.activity.main.medical_records
class MedicalRecordsFragmentPresenter(medicalRecordsFragment: MedicalRecordsFragment) :
MedicalRecordsFragmentContract.Presenter() {
init {
mView = medicalRecordsFragment
mModel = MedicalRecordsFragmentModel(this)
}
}
@@ -0,0 +1,24 @@
package cn.tsr.personal_drug_management.activity.main.mine
import cn.qjm253.quick_android_base.params.IntentParam
import cn.tsr.personal_drug_management.R
import cn.tsr.personal_drug_management.activity.base.MINVpnBaseFragment
class MineFragment : MINVpnBaseFragment<MineFragmentPresenter>(), MineFragmentContract.View {
companion object {
fun newInstance(intentParam: IntentParam? = null): MineFragment {
return newInstance_(MineFragment::class.java, intentParam)
}
}
override fun getRes(): Int = R.layout.fragment_mine
override fun initView() {
}
override fun initialLoadData() {
}
override fun onCreatePresenter(): MineFragmentPresenter = MineFragmentPresenter(this)
}
@@ -0,0 +1,18 @@
package cn.tsr.personal_drug_management.activity.main.mine
import cn.qjm253.quick_android_mvp.base.mvp.BaseModel
import cn.qjm253.quick_android_mvp.base.mvp.BasePresenter
import cn.tsr.personal_drug_management.activity.base.mvp.MINVpnBaseView
interface MineFragmentContract {
interface View : MINVpnBaseView {
}
interface Model : BaseModel {
}
abstract class Presenter : BasePresenter<View, Model>() {
}
}
@@ -0,0 +1,3 @@
package cn.tsr.personal_drug_management.activity.main.mine
class MineFragmentModel(val mPresenter: MineFragmentPresenter) : MineFragmentContract.Model
@@ -0,0 +1,8 @@
package cn.tsr.personal_drug_management.activity.main.mine
class MineFragmentPresenter(mineFragment: MineFragment) : MineFragmentContract.Presenter() {
init {
mView = mineFragment
mModel = MineFragmentModel(this)
}
}
@@ -0,0 +1,28 @@
package cn.tsr.personal_drug_management.activity.main.sport
import cn.qjm253.quick_android_base.params.IntentParam
import cn.tsr.personal_drug_management.R
import cn.tsr.personal_drug_management.activity.base.MINVpnBaseFragment
class SportFragment : MINVpnBaseFragment<SportFragmentPresenter>(),
SportFragmentContract.View {
companion object {
fun newInstance(intentParam: IntentParam? = null): SportFragment {
return newInstance_(SportFragment::class.java, intentParam)
}
}
override fun getRes(): Int = R.layout.fragment_sport
override fun initView() {
}
override fun initialLoadData() {
}
override fun onCreatePresenter(): SportFragmentPresenter = SportFragmentPresenter(this)
}
@@ -0,0 +1,18 @@
package cn.tsr.personal_drug_management.activity.main.sport
import cn.qjm253.quick_android_mvp.base.mvp.BaseModel
import cn.qjm253.quick_android_mvp.base.mvp.BasePresenter
import cn.tsr.personal_drug_management.activity.base.mvp.MINVpnBaseView
interface SportFragmentContract {
interface View : MINVpnBaseView {
}
interface Model : BaseModel {
}
abstract class Presenter : BasePresenter<View, Model>() {
}
}
@@ -0,0 +1,3 @@
package cn.tsr.personal_drug_management.activity.main.sport
class SportFragmentModel(val mPresenter: SportFragmentPresenter) : SportFragmentContract.Model
@@ -0,0 +1,8 @@
package cn.tsr.personal_drug_management.activity.main.sport
class SportFragmentPresenter(sportFragment: SportFragment) : SportFragmentContract.Presenter() {
init {
mView = sportFragment
mModel = SportFragmentModel(this)
}
}
@@ -10,10 +10,14 @@ import cn.qjm253.quick_android_base.extensions.jumpTo
import cn.qjm253.quick_android_base.extensions.scaleXY
import cn.qjm253.quick_android_rx_permission.createRxPermission
import cn.tsr.personal_drug_management.R
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.activity_welcome.*
class WelcomeActivity : MINVpnBaseActivity<WelcomeActivityPresenter>(),
WelcomeActivityContract.View {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_welcome)
@@ -32,8 +36,8 @@ class WelcomeActivity : MINVpnBaseActivity<WelcomeActivityPresenter>(),
.createRxPermission(this)
.request(arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE))
.subscribe {
if(it.granted) {
if(false) {
if (it.granted) {
if (true) {
jumpTo(MainActivity::class.java)
} else {
jumpTo(LoginActivity::class.java)
@@ -46,5 +50,7 @@ class WelcomeActivity : MINVpnBaseActivity<WelcomeActivityPresenter>(),
}, 600)
}
override fun onCreatePresenter(): WelcomeActivityPresenter = WelcomeActivityPresenter(this)
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

+127 -35
View File
@@ -1,46 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout 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"
android:orientation="vertical"
tools:context=".activity.main.MainActivity">
<include
android:id="@+id/include2"
layout="@layout/bar_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<cn.qjm253.quick_android_custom_view.other.NoneScrollViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/global_bg" />
<com.github.ybq.android.spinkit.SpinKitView
android:id="@+id/spinKit"
style="@style/SpinKitView.Large.Circle"
android:minWidth="120dp"
android:minHeight="120dp"
android:maxWidth="120dp"
android:maxHeight="120dp"
android:layout_width="wrap_content"
<include layout="@layout/divider" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:SpinKit_Color="@color/colorPrimary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/include2" />
android:paddingTop="5dp"
android:paddingBottom="5dp">
<cn.qjm253.quick_android_custom_view.tin_view.TinImageView
android:id="@+id/btnConnect"
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@drawable/ripple_bg_circle_color_primary"
android:padding="15dp"
android:src="@drawable/launch"
android:text="@string/login"
android:tint="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/include2" />
<LinearLayout
android:id="@+id/llBottomItemMedicalRecords"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:background="?selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
</androidx.constraintlayout.widget.ConstraintLayout>
<cn.qjm253.quick_android_custom_view.tin_view.TinImageView
android:id="@+id/imgBottomItemMedicalRecords"
android:layout_width="@dimen/bottom_icon_width"
android:layout_height="@dimen/bottom_icon_height"
android:src="@drawable/medical_records"
app:tinColor="@color/colorPrimary" />
<TextView
android:id="@+id/tvBottomItemMedicalRecords"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/medical_records"
android:textColor="@color/colorPrimary"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/llBottomItemSport"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:background="?selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
<cn.qjm253.quick_android_custom_view.tin_view.TinImageView
android:id="@+id/imgBottomItemSport"
android:layout_width="@dimen/bottom_icon_width"
android:layout_height="@dimen/bottom_icon_height"
android:src="@drawable/sport"
app:tinColor="@color/light_grey" />
<TextView
android:id="@+id/tvBottomItemSport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sport"
android:textColor="@color/light_grey"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/llBottomItemHealth"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:background="?selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
<cn.qjm253.quick_android_custom_view.tin_view.TinImageView
android:id="@+id/imgBottomItemHealth"
android:layout_width="@dimen/bottom_icon_width"
android:layout_height="@dimen/bottom_icon_height"
android:src="@drawable/heart"
app:tinColor="@color/light_grey" />
<TextView
android:id="@+id/tvBottomItemHealth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/health_record"
android:textColor="@color/light_grey"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/llBottomItemMine"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:background="?selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
<cn.qjm253.quick_android_custom_view.tin_view.TinImageView
android:id="@+id/imgBottomItemMine"
android:layout_width="@dimen/bottom_icon_width"
android:layout_height="@dimen/bottom_icon_height"
android:src="@drawable/mine"
app:tinColor="@color/light_grey" />
<TextView
android:id="@+id/tvBottomItemMine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mine"
android:textColor="@color/light_grey"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="@color/divide_line_color" />
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="健康记录"
tools:layout_editor_absoluteX="93dp"
tools:layout_editor_absoluteY="64dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="就医记录"
tools:layout_editor_absoluteX="266dp"
tools:layout_editor_absoluteY="223dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的"
tools:layout_editor_absoluteX="60dp"
tools:layout_editor_absoluteY="112dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="运动"
tools:layout_editor_absoluteX="96dp"
tools:layout_editor_absoluteY="109dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
+5 -30
View File
@@ -1,13 +1,7 @@
<resources>
<string name="app_name">个人药物管理</string>
<string name="home">主页</string>
<string name="mine">我的</string>
<string name="message">消息</string>
<string name="back">返回</string>
<string name="sure">确认</string>
<string name="collection">收藏</string>
<string name="notification">通知</string>
<string name="mine_file">我的文件</string>
<string name="setting">设置</string>
<string name="exit">退出</string>
<string name="login">登录</string>
@@ -20,30 +14,11 @@
<string name="send_verify_code">发送验证码</string>
<string name="confirm_password">确认密码</string>
<string name="verify_code">验证码</string>
<string name="mail_list">通讯录</string>
<string name="approval">审批</string>
<string name="click_me_login">点此登录</string>
<string name="add_message">添加消息</string>
<string name="send">发送</string>
<string name="notification_detail">通知详情</string>
<string name="reimbursement">报销</string>
<string name="occurrence_date">发生日期</string>
<string name="please_select">请选择</string>
<string name="submit">提交</string>
<string name="approval_er">审核人</string>
<string name="approval_record">审批记录</string>
<string name="i_proposed">我发起的</string>
<string name="i_approval">我审批的</string>
<string name="check">审核</string>
<string name="send_notification">发送通知</string>
<string name="email_list">邮件列表</string>
<string name="email_recive">收件箱</string>
<string name="email_send">发件箱</string>
<string name="send_email">发送邮件</string>
<string name="please_complete_content">请将内容填写完整</string>
<string name="email_detail">邮件详情</string>
<string name="open">打开</string>
<string name="download">下载</string>
<string name="medical_records">就医记录</string>
<string name="sport">运动</string>
<string name="mine">我的</string>
<string name="health_record">健康记录</string>
<string name="setting_title_access_ip_address">接入IP地址</string>
<string name="setting_title_access_port">接入端口号</string>
<string name="setting_ip_address_example">例如: 192.168.1.25</string>