add: 主页面+页面切换
This commit is contained in:
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
|
||||
}
|
||||
|
||||
}
|
||||
+27
@@ -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)
|
||||
|
||||
}
|
||||
+18
@@ -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>() {
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package cn.tsr.personal_drug_management.activity.main.health_records
|
||||
|
||||
class HealthRecordsFragmentModel(val mPresenter: HealthRecordsFragmentPresenter) : HealthRecordsFragmentContract.Model
|
||||
+9
@@ -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)
|
||||
}
|
||||
}
|
||||
+27
@@ -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)
|
||||
|
||||
}
|
||||
+18
@@ -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>() {
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package cn.tsr.personal_drug_management.activity.main.medical_records
|
||||
|
||||
class MedicalRecordsFragmentModel(val mPresenter: MedicalRecordsFragmentPresenter) : MedicalRecordsFragmentContract.Model
|
||||
+10
@@ -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)
|
||||
|
||||
}
|
||||
+18
@@ -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>() {
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package cn.tsr.personal_drug_management.activity.main.mine
|
||||
|
||||
class MineFragmentModel(val mPresenter: MineFragmentPresenter) : MineFragmentContract.Model
|
||||
+8
@@ -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)
|
||||
}
|
||||
}
|
||||
+28
@@ -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)
|
||||
|
||||
}
|
||||
+18
@@ -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>() {
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package cn.tsr.personal_drug_management.activity.main.sport
|
||||
|
||||
class SportFragmentModel(val mPresenter: SportFragmentPresenter) : SportFragmentContract.Model
|
||||
+8
@@ -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)
|
||||
}
|
||||
}
|
||||
+8
-2
@@ -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 |
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
Reference in new issue
Block a user