作者 liyan

视频和我的页面部分

正在显示 76 个修改的文件 包含 2313 行增加167 行删除
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>
\ No newline at end of file
... ... @@ -73,7 +73,15 @@
<activity android:name=".ui.home.activity.TextCourseActivity" />
<activity android:name=".ui.home.activity.TextDetailActivity" />
<activity android:name=".ui.home.activity.OnlineActivity" />
<activity android:name=".ui.home.activity.OnlineDetailActivity"/>
<activity android:name=".ui.home.activity.OnlineDetailActivity"
android:configChanges="orientation|keyboardHidden|screenSize"/>
<activity android:name=".ui.home.activity.LiveCourseActivity"/>
<activity android:name=".ui.mine.activity.EditPersonalInfoActivity"/>
<activity android:name=".ui.mine.activity.ChangePwdActivity"/>
<activity android:name=".ui.mine.activity.ChangePhoneActivity"/>
<activity android:name=".ui.mine.activity.MyErrorQuestionActivity"/>
<activity android:name=".ui.mine.activity.QuestionRecordActivity"/>
<activity android:name=".ui.mine.activity.MyCredentialsActivity"/>
</application>
... ...
... ... @@ -42,6 +42,9 @@ abstract class BaseActivity : AppCompatActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
ImmersionBar.with(this).transparentStatusBar().statusBarDarkFont(true).init()
// .transparentNavigationBar() //透明导航栏,不写默认黑色(设置此方法,fullScreen()方法自动为true)
// .transparentBar().navigationBarDarkIcon(true)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val modes = window.windowManager.defaultDisplay.supportedModes
modes.sortBy {
... ... @@ -64,9 +67,7 @@ abstract class BaseActivity : AppCompatActivity() {
}
// EventBus.getDefault().register(this)
ImmersionBar.with(this).transparentStatusBar().statusBarDarkFont(false).init()
// .transparentNavigationBar() //透明导航栏,不写默认黑色(设置此方法,fullScreen()方法自动为true)
// .transparentBar().navigationBarDarkIcon(true)
}
@RequiresApi(Build.VERSION_CODES.M)
... ...
package com.br_technology.securitytrain_master.ui.home.activity
import android.view.View
import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentPagerAdapter
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.ActivityLiveCourseBinding
import com.br_technology.securitytrain_master.ui.home.adapter.ResultPagerAdapter
import com.br_technology.securitytrain_master.ui.home.fragment.CourseListFragment
import com.br_technology.securitytrain_master.ui.home.fragment.OnLiveCourseFragment
import com.br_technology.securitytrain_master.ui.home.fragment.OnlineDetailFragment
import com.br_technology.securitytrain_master.ui.home.viewmodel.LiveCourseViewModel
import com.br_technology.securitytrain_master.view.ClassifyPop
import com.br_technology.securitytrain_master.view.listener.ToolBarClickListener
import com.gyf.immersionbar.ImmersionBar
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
/**
* Time: 7/31/2021 10:43
* Author: Captain
* Description: 初见时你很迷人
*/
class LiveCourseActivity
:
BaseLifeCycleActivity<LiveCourseViewModel, ActivityLiveCourseBinding>(ActivityLiveCourseBinding::inflate) {
private val classifyPop by lazy {
ClassifyPop(this)
}
override fun initView() {
super.initView()
ImmersionBar.with(this@LiveCourseActivity).statusBarDarkFont(true).init();
}
override fun initDataObserver() {
}
override fun initData() {
super.initData()
binding.apply {
toolBar.setRightText("焊工")
toolBar.setRightTextDrawable(
ContextCompat.getDrawable(
baseContext,
R.mipmap.down_arrow
)
)
toolBar.addRightListener(object : ToolBarClickListener {
override fun onClick(view: View) {
if (!classifyPop.isShowing) {
classifyPop.showAsDropDown(view)
}
}
})
val searchResultAdapter = ResultPagerAdapter(
supportFragmentManager,
FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
)
val list =
listOf(OnLiveCourseFragment(),OnLiveCourseFragment(),OnLiveCourseFragment())
val titles = listOf("正在直播", "回放课程", "即将开播")
searchResultAdapter.addData(list)
searchResultAdapter.addTitle(titles)
viewPager.adapter = searchResultAdapter
tabLayout.setupWithViewPager(viewPager)
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.home.activity
import android.content.pm.ActivityInfo
import android.content.res.Configuration
import android.view.View
import android.view.WindowManager
import androidx.fragment.app.FragmentPagerAdapter
import com.br_technology.securitytrain_master.databinding.ActivityOnlineDetailBinding
import com.br_technology.securitytrain_master.ui.home.adapter.ResultPagerAdapter
... ... @@ -11,11 +9,8 @@ import com.br_technology.securitytrain_master.ui.home.fragment.CourseListFragmen
import com.br_technology.securitytrain_master.ui.home.fragment.OnlineDetailFragment
import com.br_technology.securitytrain_master.ui.home.viewmodel.OnlineDetailViewModel
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
import com.shuyu.gsyvideoplayer.listener.LockClickListener
import com.shuyu.gsyvideoplayer.utils.Debuger
import com.shuyu.gsyvideoplayer.utils.OrientationUtils
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
... ... @@ -35,6 +30,7 @@ class OnlineDetailActivity
}
var isPlay : Boolean = false
var isPause : Boolean = false
override fun initData() {
super.initData()
... ... @@ -54,137 +50,61 @@ class OnlineDetailActivity
tabLayout.setupWithViewPager(viewPager)
// val source1 =
// "http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4"
// videoPlayer.setUp(source1, true, "测试视频")
//增加封面
//增加title
// videoPlayer.titleTextView.visibility = View.VISIBLE
// //设置返回键
// videoPlayer.backButton.visibility = View.VISIBLE
//设置旋转
orientationUtils = OrientationUtils(this@OnlineDetailActivity, videoPlayer)
val gsyVideoOption = GSYVideoOptionBuilder()
gsyVideoOption
.setIsTouchWiget(true)
.setRotateViewAuto(false)
.setLockLand(false)
.setAutoFullWithSize(true)
.setShowFullAnimation(false)
.setNeedLockFull(true)
.setUrl("http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4")
.setCacheWithPlay(false)
.setVideoTitle("测试视频")
.setVideoAllCallBack(object : GSYSampleCallBack() {
override fun onPrepared(url: String?, vararg objects: Any?) {
super.onPrepared(url, *objects)
//开始播放了才能旋转和全屏
orientationUtils!!.setEnable(true);
isPlay = true;
}
override fun onQuitFullscreen(url: String?, vararg objects: Any?) {
super.onQuitFullscreen(url, *objects)
Debuger.printfError("***** onQuitFullscreen **** " + objects[0]);//title
Debuger.printfError("***** onQuitFullscreen **** " + objects[1]);//当前非全屏player
if (orientationUtils != null) {
orientationUtils!!.backToProtVideo();
}
}
}).setLockClickListener(object : LockClickListener {
override fun onClick(view: View?, lock: Boolean) {
if (orientationUtils != null) {
//配合下方的onConfigurationChanged
orientationUtils!!.setEnable(!lock);
}
}
}).build(videoPlayer)
videoPlayer.fullscreenButton.setOnClickListener { //直接横屏
toolBar.visibility = View.GONE
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
initOrientationUtils(videoPlayer, false)
val source1 =
"http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4"
videoPlayer.setUp(source1, true, "测试视频")
videoPlayer.backButton.visibility = View.GONE
videoPlayer.startButton.setOnClickListener({
videoPlayer.startPlayLogic()
})
videoPlayer.fullscreenButton.setOnClickListener {
orientationUtils!!.resolveByClick()
//第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar
videoPlayer.startWindowFullscreen(this@OnlineDetailActivity, false, false)
videoPlayer.startWindowFullscreen(this@OnlineDetailActivity,true,true)
}
}
//设置全屏按键功能,这是使用的是选择屏幕,而不是全屏
}
// videoPlayer.fullscreenButton.setOnClickListener({
//// orientationUtils!!.resolveByClick()
//
// videoPlayer.startWindowFullscreen(this@OnlineDetailActivity, true, true);
// })
private fun initOrientationUtils(videoPlayer: StandardGSYVideoPlayer, full: Boolean) {
orientationUtils = OrientationUtils(this, videoPlayer)
//是否需要跟随系统旋转设置
//orientationUtils.setRotateWithSystem(false);
orientationUtils!!.isLand = if (full) 1 else 0
}
//是否可以滑动调整
videoPlayer.setIsTouchWiget(true)
//设置返回按键功能
videoPlayer.backButton.visibility = View.GONE
videoPlayer.startButton.setOnClickListener({
videoPlayer.startPlayLogic()
})
}
override fun onPause() {
super.onPause()
binding.videoPlayer.onVideoPause()
}
override fun onResume() {
super.onResume()
binding.videoPlayer.onVideoResume()
}
override fun onDestroy() {
super.onDestroy()
GSYVideoManager.releaseAllVideos();
if (orientationUtils != null)
orientationUtils!!.releaseListener();
}
super.onDestroy()
// override fun getGSYVideoPlayer(): StandardGSYVideoPlayer {
// return binding.videoPlayer
// }
//
// override fun getGSYVideoOptionBuilder(): GSYVideoOptionBuilder {
////内置封面可参考SampleCoverVideo
// //内置封面可参考SampleCoverVideo
// val imageView = ImageView(this)
//// loadCover(imageView, url)
// return GSYVideoOptionBuilder()
// .setThumbImageView(imageView)
// .setUrl("https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218114723HDu3hhxqIT.mp4")
// .setCacheWithPlay(true)
// .setVideoTitle(" ")
// .setIsTouchWiget(true)
// .setRotateViewAuto(false)
// .setLockLand(false)
// .setShowFullAnimation(false)
// .setNeedLockFull(true)
// .setSeekRatio(1f)
// }
//
// override fun clickForFullScreen() {
//
// }
//
// override fun getDetailOrientationRotateAuto(): Boolean {
// return false
// }
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
// 横屏
if (newConfig.orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
binding.toolBar.visibility=View.GONE
}else{
binding.toolBar.visibility=View.VISIBLE
}
//如果旋转了就全屏
// if (isPlay && !isPause) {
binding.videoPlayer.onConfigurationChanged(
this,
newConfig,
orientationUtils,
true,
true
);
// }
}
}
\ No newline at end of file
... ...
... ... @@ -13,10 +13,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.FragmentHomeBinding
import com.br_technology.securitytrain_master.expand.addItemDecoration2
import com.br_technology.securitytrain_master.ui.home.activity.DatabaseActivity
import com.br_technology.securitytrain_master.ui.home.activity.OnlineActivity
import com.br_technology.securitytrain_master.ui.home.activity.SearchActivity
import com.br_technology.securitytrain_master.ui.home.activity.TextCourseActivity
import com.br_technology.securitytrain_master.ui.home.activity.*
import com.br_technology.securitytrain_master.ui.home.adapter.RecommendDataAdapter
import com.br_technology.securitytrain_master.ui.home.adapter.VideoCourseAdapter
import com.br_technology.securitytrain_master.ui.home.pojo.RecommendData
... ... @@ -90,6 +87,11 @@ class HomeFragment :
startActivity(OnlineActivity::class.java)
}
// 在线课程
liveCourse.setOnClickListener {
startActivity(LiveCourseActivity::class.java)
}
// 视频课程
videoCourse.addItemDecoration2(2,15)
val videoCourseAdapter = VideoCourseAdapter()
... ...
package com.br_technology.securitytrain_master.ui.home.fragment
import android.view.View
import androidx.core.content.ContextCompat
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.FragmentOnliveCourseBinding
import com.br_technology.securitytrain_master.expand.addItemDecoration2
import com.br_technology.securitytrain_master.ui.home.activity.OnlineDetailActivity
import com.br_technology.securitytrain_master.ui.home.adapter.VideoCourseAdapter
import com.br_technology.securitytrain_master.ui.home.pojo.VideoCourse
import com.br_technology.securitytrain_master.ui.home.viewmodel.OnLiveCourseFragmentViewModel
import com.br_technology.securitytrain_master.view.listener.OnItemClickListener
import com.br_technology.securitytrain_master.view.listener.ToolBarClickListener
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment
/**
* Time: 7/31/2021 10:58
* Author: Captain
* Description: 初见时你很迷人
*/
class OnLiveCourseFragment
: BaseLifeCycleFragment<OnLiveCourseFragmentViewModel,FragmentOnliveCourseBinding>(FragmentOnliveCourseBinding :: inflate){
override fun initDataObserver() {
}
override fun initData() {
super.initData()
binding.apply {
onlineRecycler.addItemDecoration2(2, 15)
val videoCourseAdapter = VideoCourseAdapter()
val list = mutableListOf(
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "10课时", "自动化制作课程", "", "张钧-三岗职位培训班"),
)
onlineRecycler.adapter = videoCourseAdapter
videoCourseAdapter.addList(list)
videoCourseAdapter.addListener(object : OnItemClickListener<VideoCourse> {
override fun onClick(position: Int, data: VideoCourse) {
startActivity(OnlineDetailActivity :: class.java)
}
})
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.home.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 10:43
* Author: Captain
* Description: 初见时你很迷人
*/
class LiveCourseRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.home.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 10:58
* Author: Captain
* Description: 初见时你很迷人
*/
class OnLiveCourseFragmentRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.home.viewmodel
import com.br_technology.securitytrain_master.ui.home.repository.LiveCourseRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 10:44
* Author: Captain
* Description: 初见时你很迷人
*/
class LiveCourseViewModel : BaseViewModel<LiveCourseRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.home.viewmodel
import com.br_technology.securitytrain_master.ui.home.repository.OnLiveCourseFragmentRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 11:00
* Author: Captain
* Description: 初见时你很迷人
*/
class OnLiveCourseFragmentViewModel : BaseViewModel<OnLiveCourseFragmentRepository>() {
}
\ No newline at end of file
... ...
... ... @@ -6,7 +6,7 @@ import androidx.fragment.app.FragmentPagerAdapter
import com.br_technology.securitytrain_master.databinding.ActivityMainBinding
import com.br_technology.securitytrain_master.ui.bank.fragment.BankFragment
import com.br_technology.securitytrain_master.ui.home.fragment.HomeFragment
import com.br_technology.securitytrain_master.ui.home.MineFragment
import com.br_technology.securitytrain_master.ui.mine.fragment.MineFragment
import com.br_technology.securitytrain_master.ui.main.viewmodel.MainViewModel
import com.gyf.immersionbar.ImmersionBar
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
... ... @@ -17,7 +17,7 @@ class MainActivity :
// private lateinit var mainAdapter: MainAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ImmersionBar.with(this@MainActivity).statusBarDarkFont(false).init();
val list = listOf(HomeFragment(), BankFragment(), MineFragment())
// 初始化适配器
... ...
... ... @@ -4,7 +4,7 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.ui.bank.fragment.BankFragment
import com.br_technology.securitytrain_master.ui.home.fragment.HomeFragment
import com.br_technology.securitytrain_master.ui.home.MineFragment
import com.br_technology.securitytrain_master.ui.mine.fragment.MineFragment
import com.br_technology.securitytrain_master.ui.main.repository.MainRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
... ... @@ -18,7 +18,7 @@ class MainViewModel:BaseViewModel<MainRepository>() {
MutableLiveData()
}
init {
val list= listOf(HomeFragment(), BankFragment(),MineFragment())
val list= listOf(HomeFragment(), BankFragment(), MineFragment())
liveData.postValue(list as List<Fragment>?)
}
... ...
package com.br_technology.securitytrain_master.ui.home
import android.app.Fragment
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.FragmentMineBinding
import com.br_technology.securitytrain_master.ui.home.viewmodel.MineViewModel
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment
/**
* createTime:2021/7/27 15:47
* auth:张继
* des:
*/
class MineFragment :BaseLifeCycleFragment<MineViewModel,FragmentMineBinding>(FragmentMineBinding::inflate) {
override fun initDataObserver() {
}
}
\ No newline at end of file
package com.br_technology.securitytrain_master.ui.mine.activity
import com.br_technology.securitytrain_master.databinding.ActivityChangePhoneBinding
import com.br_technology.securitytrain_master.ui.mine.viewmodel.ChangePhoneViewModel
import com.gyf.immersionbar.ImmersionBar
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
/**
* Time: 7/31/2021 15:31
* Author: Captain
* Description: 初见时你很迷人
*/
class ChangePhoneActivity :
BaseLifeCycleActivity<ChangePhoneViewModel, ActivityChangePhoneBinding>(
ActivityChangePhoneBinding::inflate
) {
override fun initDataObserver() {
}
override fun initView() {
super.initView()
ImmersionBar.with(this@ChangePhoneActivity).statusBarDarkFont(true).init();
}
override fun initData() {
super.initData()
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.activity
import com.br_technology.securitytrain_master.databinding.ActivityChangePwdBinding
import com.br_technology.securitytrain_master.ui.mine.viewmodel.ChangePwdViewModel
import com.gyf.immersionbar.ImmersionBar
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
/**
* Time: 7/31/2021 15:04
* Author: Captain
* Description: 初见时你很迷人
*/
class ChangePwdActivity :
BaseLifeCycleActivity<ChangePwdViewModel, ActivityChangePwdBinding>(ActivityChangePwdBinding::inflate) {
override fun initDataObserver() {
}
override fun initView() {
super.initView()
ImmersionBar.with(this@ChangePwdActivity).statusBarDarkFont(true).init();
}
override fun initData() {
super.initData()
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.activity
import android.view.View
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.ActivityEditPersonalInfoBinding
import com.br_technology.securitytrain_master.ui.mine.viewmodel.EditPersonalInfoViewModel
import com.gyf.immersionbar.ImmersionBar
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
/**
* Time: 7/31/2021 14:32
* Author: Captain
* Description: 初见时你很迷人
*/
class EditPersonalInfoActivity :
BaseLifeCycleActivity<EditPersonalInfoViewModel, ActivityEditPersonalInfoBinding>(
ActivityEditPersonalInfoBinding::inflate
), View.OnClickListener {
override fun initDataObserver() {
}
override fun initView() {
ImmersionBar.with(this@EditPersonalInfoActivity).statusBarDarkFont(true).init();
super.initView()
}
override fun initData() {
super.initData()
ImmersionBar.with(this@EditPersonalInfoActivity).statusBarDarkFont(true).init();
binding.apply {
llChangePwd.setOnClickListener(this@EditPersonalInfoActivity)
llChangePhone.setOnClickListener(this@EditPersonalInfoActivity)
}
}
override fun onClick(v: View?) {
when(v!!.id){
R.id.ll_change_pwd ->{
//修改密码
startActivity(ChangePwdActivity :: class.java)
}
R.id.ll_change_phone ->{
//修改手机号
startActivity(ChangePhoneActivity :: class.java)
}
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.activity
import com.br_technology.securitytrain_master.databinding.ActivityMyCredentialsBinding
import com.br_technology.securitytrain_master.ui.mine.viewmodel.MyCredentialsViewModel
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
/**
* Time: 7/31/2021 17:48
* Author: Captain
* Description: 初见时你很迷人
* 我的证书
*/
class MyCredentialsActivity :
BaseLifeCycleActivity<MyCredentialsViewModel, ActivityMyCredentialsBinding>(
ActivityMyCredentialsBinding::inflate
) {
override fun initDataObserver() {
}
override fun initData() {
super.initData()
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.activity
import androidx.fragment.app.FragmentPagerAdapter
import com.br_technology.securitytrain_master.databinding.ActivityMyErrorQuestionBinding
import com.br_technology.securitytrain_master.ui.home.adapter.ResultPagerAdapter
import com.br_technology.securitytrain_master.ui.home.fragment.OnLiveCourseFragment
import com.br_technology.securitytrain_master.ui.mine.fragment.MyErrorQuestionFragment
import com.br_technology.securitytrain_master.ui.mine.viewmodel.MyErrorQuestionViewModel
import com.gyf.immersionbar.ImmersionBar
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
/**
* 我的错题
* Time: 7/31/2021 15:37
* Author: Captain
* Description: 初见时你很迷人
*/
class MyErrorQuestionActivity :
BaseLifeCycleActivity<MyErrorQuestionViewModel, ActivityMyErrorQuestionBinding>(
ActivityMyErrorQuestionBinding::inflate
) {
override fun initDataObserver() {
}
override fun initView() {
super.initView()
ImmersionBar.with(this@MyErrorQuestionActivity).statusBarDarkFont(true).init();
}
override fun initData() {
super.initData()
binding.apply {
val searchResultAdapter = ResultPagerAdapter(
supportFragmentManager,
FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
)
val list =
listOf(MyErrorQuestionFragment(), MyErrorQuestionFragment(), MyErrorQuestionFragment())
val titles = listOf("单选题", "判断题", "多选题")
searchResultAdapter.addData(list)
searchResultAdapter.addTitle(titles)
viewPager.adapter = searchResultAdapter
tabLayout.setupWithViewPager(viewPager)
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.activity
import androidx.fragment.app.FragmentPagerAdapter
import com.br_technology.securitytrain_master.databinding.ActivityQuestionRecordBinding
import com.br_technology.securitytrain_master.ui.home.adapter.ResultPagerAdapter
import com.br_technology.securitytrain_master.ui.mine.fragment.MockExaminationFragment
import com.br_technology.securitytrain_master.ui.mine.fragment.MyErrorQuestionFragment
import com.br_technology.securitytrain_master.ui.mine.fragment.SpecialExercisesFragment
import com.br_technology.securitytrain_master.ui.mine.viewmodel.QuestionRecordViewModel
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
/**
* Time: 7/31/2021 16:44
* Author: Captain
* Description: 初见时你很迷人
*/
class QuestionRecordActivity :
BaseLifeCycleActivity<QuestionRecordViewModel, ActivityQuestionRecordBinding>(
ActivityQuestionRecordBinding::inflate
) {
override fun initDataObserver() {
}
override fun initData() {
super.initData()
binding.apply {
val searchResultAdapter = ResultPagerAdapter(
supportFragmentManager,
FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
)
val list =
listOf(SpecialExercisesFragment(), MockExaminationFragment())
val titles = listOf("专项练习", "模拟考试")
searchResultAdapter.addData(list)
searchResultAdapter.addTitle(titles)
viewPager.adapter = searchResultAdapter
tabLayout.setupWithViewPager(viewPager)
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import com.br_technology.securitytrain_master.base.view.BaseAdapter
import com.br_technology.securitytrain_master.databinding.ItemMockExamnationBinding
import com.br_technology.securitytrain_master.databinding.ItemMyErrorQuestionBinding
import com.br_technology.securitytrain_master.ui.home.pojo.VideoCourse
/**
* Time: 7/31/2021 17:24
* Author: Captain
* Description: 初见时你很迷人
*/
class MockExaminationAdapter : BaseAdapter<VideoCourse, ItemMockExamnationBinding>() {
override fun getViewBinding(
context: Context,
parent: ViewGroup,
viewType: Int,
from: LayoutInflater
): ItemMockExamnationBinding {
return ItemMockExamnationBinding.inflate(from, parent, false)
}
override fun onBind(holder: ItemMockExamnationBinding, position: Int, data: VideoCourse) {
// 试题名称
holder.tvQuestionTitle.text = data.courseName
holder.tvCommitTime.text = data.lesson
holder.tvScore.text = data.head
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import com.br_technology.securitytrain_master.base.view.BaseAdapter
import com.br_technology.securitytrain_master.databinding.ItemMyErrorQuestionBinding
import com.br_technology.securitytrain_master.databinding.ItemVideoCourseBinding
import com.br_technology.securitytrain_master.ui.home.pojo.VideoCourse
/**
* Time: 7/31/2021 16:08
* Author: Captain
* Description: 初见时你很迷人
*/
class MyErrorQuestionAdapter : BaseAdapter<VideoCourse, ItemMyErrorQuestionBinding>() {
override fun getViewBinding(
context: Context,
parent: ViewGroup,
viewType: Int,
from: LayoutInflater
): ItemMyErrorQuestionBinding {
return ItemMyErrorQuestionBinding.inflate(from, parent, false)
}
override fun onBind(holder: ItemMyErrorQuestionBinding, position: Int, data: VideoCourse) {
// 错题名称
holder.tvQuestionTitle.text = data.courseName
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import com.br_technology.securitytrain_master.base.view.BaseAdapter
import com.br_technology.securitytrain_master.databinding.ItemMyErrorQuestionBinding
import com.br_technology.securitytrain_master.databinding.ItemSpecialExercisesBinding
import com.br_technology.securitytrain_master.ui.home.pojo.VideoCourse
/**
* Time: 7/31/2021 17:06
* Author: Captain
* Description: 初见时你很迷人
*/
class SpecialExercisesAdapter : BaseAdapter<VideoCourse,ItemSpecialExercisesBinding>() {
override fun getViewBinding(
context: Context,
parent: ViewGroup,
viewType: Int,
from: LayoutInflater
): ItemSpecialExercisesBinding {
return ItemSpecialExercisesBinding.inflate(from, parent, false)
}
override fun onBind(holder: ItemSpecialExercisesBinding, position: Int, data: VideoCourse) {
// 题名称
holder.tvQuestionTitle.text = data.courseName
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.fragment
import android.view.View
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.FragmentMineBinding
import com.br_technology.securitytrain_master.ui.home.viewmodel.MineViewModel
import com.br_technology.securitytrain_master.ui.mine.activity.EditPersonalInfoActivity
import com.br_technology.securitytrain_master.ui.mine.activity.MyErrorQuestionActivity
import com.br_technology.securitytrain_master.ui.mine.activity.QuestionRecordActivity
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment
/**
* createTime:2021/7/27 15:47
* auth:张继
* des:
*/
class MineFragment
:BaseLifeCycleFragment<MineViewModel,FragmentMineBinding>(FragmentMineBinding::inflate),
View.OnClickListener {
override fun initDataObserver() {
}
override fun initData() {
super.initData()
binding.apply {
ivEditInfo.setOnClickListener(this@MineFragment)
rlMineCuoti.setOnClickListener(this@MineFragment)
rlMineDatijilu.setOnClickListener(this@MineFragment)
mineZhengjian.setOnClickListener(this@MineFragment)
rlMineShoucang.setOnClickListener(this@MineFragment)
rlMineLiaotianjilu.setOnClickListener(this@MineFragment)
rlMineTousuyujianyi.setOnClickListener(this@MineFragment)
rlMineLianxikefu.setOnClickListener(this@MineFragment)
}
}
override fun onClick(v: View?) {
when(v!!.id){
R.id.iv_edit_info ->{
//编辑个人信息
startActivity(EditPersonalInfoActivity :: class.java)
}
R.id.rl_mine_cuoti ->{
//我的错题
startActivity(MyErrorQuestionActivity :: class.java)
}
R.id.rl_mine_datijilu ->{
//答题记录
startActivity(QuestionRecordActivity :: class.java)
}
R.id.mine_zhengjian ->{
//我的证件
}
R.id.rl_mine_shoucang ->{
//我的收藏
}
R.id.rl_mine_liaotianjilu ->{
//我的聊天记录
}
R.id.rl_mine_tousuyujianyi ->{
//投诉与建议
}
R.id.rl_mine_lianxikefu ->{
//联系客服
}
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.fragment
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.FragmentMockExaminationBinding
import com.br_technology.securitytrain_master.ui.home.pojo.VideoCourse
import com.br_technology.securitytrain_master.ui.mine.adapter.MockExaminationAdapter
import com.br_technology.securitytrain_master.ui.mine.adapter.SpecialExercisesAdapter
import com.br_technology.securitytrain_master.ui.mine.viewmodel.MockExaminationFragmentViewModel
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment
/**
* Time: 7/31/2021 17:21
* Author: Captain
* Description: 初见时你很迷人
*/
class MockExaminationFragment
: BaseLifeCycleFragment<MockExaminationFragmentViewModel, FragmentMockExaminationBinding>(
FragmentMockExaminationBinding::inflate
) {
override fun initDataObserver() {
}
override fun initData() {
super.initData()
binding.apply {
val mockExaminationAdapter = MockExaminationAdapter()
val list = mutableListOf(
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "45分", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "68分", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "100分", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "99分", "张钧-三岗职位培训班"),
)
recyclerview.adapter = mockExaminationAdapter
mockExaminationAdapter.addList(list)
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.fragment
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.FragmentMyErrorQuestionBinding
import com.br_technology.securitytrain_master.ui.home.pojo.VideoCourse
import com.br_technology.securitytrain_master.ui.mine.adapter.MyErrorQuestionAdapter
import com.br_technology.securitytrain_master.ui.mine.viewmodel.MyErrorQuestionFragmentViewModel
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment
/**
* Time: 7/31/2021 15:47
* Author: Captain
* Description: 初见时你很迷人
*/
class MyErrorQuestionFragment :
BaseLifeCycleFragment<MyErrorQuestionFragmentViewModel, FragmentMyErrorQuestionBinding>(
FragmentMyErrorQuestionBinding::inflate
) {
override fun initDataObserver() {
}
override fun initData() {
super.initData()
binding.apply {
val myErrorQuestionAdapter = MyErrorQuestionAdapter()
val list = mutableListOf(
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "1.1", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "1.1", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "1.1", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "1.1", "张钧-三岗职位培训班"),
)
recyclerview.adapter = myErrorQuestionAdapter
myErrorQuestionAdapter.addList(list)
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.fragment
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.databinding.FragmentSpecialExercisesBinding
import com.br_technology.securitytrain_master.ui.home.pojo.VideoCourse
import com.br_technology.securitytrain_master.ui.mine.adapter.MyErrorQuestionAdapter
import com.br_technology.securitytrain_master.ui.mine.adapter.SpecialExercisesAdapter
import com.br_technology.securitytrain_master.ui.mine.viewmodel.SpecialExercisesFragmentViewModel
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleFragment
/**
* Time: 7/31/2021 17:02
* Author: Captain
* Description: 初见时你很迷人
* 专项练习
*/
class SpecialExercisesFragment
: BaseLifeCycleFragment<SpecialExercisesFragmentViewModel, FragmentSpecialExercisesBinding>(
FragmentSpecialExercisesBinding::inflate
) {
override fun initDataObserver() {
}
override fun initData() {
super.initData()
binding.apply {
val specialExercisesAdapter = SpecialExercisesAdapter()
val list = mutableListOf(
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "1.1", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "1.1", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "1.1", "张钧-三岗职位培训班"),
VideoCourse(R.mipmap.banner, "01:45:00", "自动化制作课程", "1.1", "张钧-三岗职位培训班"),
)
recyclerview.adapter = specialExercisesAdapter
specialExercisesAdapter.addList(list)
}
}
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 15:31
* Author: Captain
* Description: 初见时你很迷人
*/
class ChangePhoneRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 15:04
* Author: Captain
* Description: 初见时你很迷人
*/
class ChangePwdRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 14:33
* Author: Captain
* Description: 初见时你很迷人
*/
class EditPersonalInfoRepository(val loadState: MutableLiveData<State>): ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 17:21
* Author: Captain
* Description: 初见时你很迷人
*/
class MockExaminationFragmentRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 17:49
* Author: Captain
* Description: 初见时你很迷人
*/
class MyCredentialsRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 15:48
* Author: Captain
* Description: 初见时你很迷人
*/
class MyErrorQuestionFragmentRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 15:37
* Author: Captain
* Description: 初见时你很迷人
*/
class MyErrorQuestionRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 16:55
* Author: Captain
* Description: 初见时你很迷人
*/
class QuestionRecordRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.repository
import androidx.lifecycle.MutableLiveData
import com.br_technology.securitytrain_master.base.common.State
import com.wjx.android.wanandroidmvvm.base.repository.ApiRepository
/**
* Time: 7/31/2021 17:02
* Author: Captain
* Description: 初见时你很迷人
*/
class SpecialExercisesFragmentRepository(val loadState: MutableLiveData<State>) : ApiRepository() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.ChangePhoneRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 15:32
* Author: Captain
* Description: 初见时你很迷人
*/
class ChangePhoneViewModel : BaseViewModel<ChangePhoneRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.ChangePwdRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 15:05
* Author: Captain
* Description: 初见时你很迷人
*/
class ChangePwdViewModel : BaseViewModel<ChangePwdRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.EditPersonalInfoRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 14:38
* Author: Captain
* Description: 初见时你很迷人
*/
class EditPersonalInfoViewModel : BaseViewModel<EditPersonalInfoRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.MockExaminationFragmentRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 17:21
* Author: Captain
* Description: 初见时你很迷人
*/
class MockExaminationFragmentViewModel : BaseViewModel<MockExaminationFragmentRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.MyCredentialsRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 17:50
* Author: Captain
* Description: 初见时你很迷人
*/
class MyCredentialsViewModel : BaseViewModel<MyCredentialsRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.MyErrorQuestionFragmentRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 15:49
* Author: Captain
* Description: 初见时你很迷人
*/
class MyErrorQuestionFragmentViewModel : BaseViewModel<MyErrorQuestionFragmentRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.MyErrorQuestionRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 15:38
* Author: Captain
* Description: 初见时你很迷人
*/
class MyErrorQuestionViewModel : BaseViewModel<MyErrorQuestionRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.QuestionRecordRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 16:55
* Author: Captain
* Description: 初见时你很迷人
*/
class QuestionRecordViewModel : BaseViewModel<QuestionRecordRepository>() {
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.ui.mine.viewmodel
import com.br_technology.securitytrain_master.ui.mine.repository.SpecialExercisesFragmentRepository
import com.wjx.android.wanandroidmvvm.base.viewmodel.BaseViewModel
/**
* Time: 7/31/2021 17:03
* Author: Captain
* Description: 初见时你很迷人
*/
class SpecialExercisesFragmentViewModel : BaseViewModel<SpecialExercisesFragmentRepository>() {
}
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="4dp" />
<solid android:color="@color/color_e3" />
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:text="修改手机号"
android:textColor="@color/color_32"
android:textSize="18sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@null"
android:hint="输入手机号"
android:textColor="@color/color_32"
android:textColorHint="@color/color_96"
android:textSize="14sp" />
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp">
<EditText
android:id="@+id/et_code"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:background="@null"
android:hint="输入验证码"
android:textColor="@color/color_32"
android:textColorHint="@color/color_96"
android:textSize="14sp" />
<TextView
android:gravity="center"
android:id="@+id/tv_get_code"
android:layout_marginEnd="16dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_25"
android:text="获取验证码"
android:layout_width="86dp"
android:layout_height="wrap_content"/>
<View
android:layout_alignParentEnd="true"
android:layout_alignEnd="@id/et_code"
android:layout_centerVertical="true"
android:layout_marginEnd="110dp"
android:background="@color/color_25"
android:layout_width="1dp"
android:layout_height="16dp">
</View>
</RelativeLayout>
<TextView
android:gravity="center"
android:background="@drawable/solid_25_4"
android:layout_marginTop="40dp"
android:layout_gravity="center_horizontal"
android:textSize="16sp"
android:textColor="@color/white"
android:text="完成"
android:layout_width="343dp"
android:layout_height="44dp"/>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:text="修改密码"
android:textColor="@color/color_32"
android:textSize="18sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@null"
android:hint="输入手机号"
android:textColor="@color/color_32"
android:textColorHint="@color/color_96"
android:textSize="14sp" />
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp">
<EditText
android:id="@+id/et_code"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:background="@null"
android:hint="输入验证码"
android:textColor="@color/color_32"
android:textColorHint="@color/color_96"
android:textSize="14sp" />
<TextView
android:gravity="center"
android:id="@+id/tv_get_code"
android:layout_marginEnd="16dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_25"
android:text="获取验证码"
android:layout_width="86dp"
android:layout_height="wrap_content"/>
<View
android:layout_alignParentEnd="true"
android:layout_alignEnd="@id/et_code"
android:layout_centerVertical="true"
android:layout_marginEnd="110dp"
android:background="@color/color_25"
android:layout_width="1dp"
android:layout_height="16dp">
</View>
</RelativeLayout>
<View
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="8dp">
</View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@null"
android:hint="输入原密码"
android:textColor="@color/color_32"
android:textColorHint="@color/color_96"
android:textSize="14sp" />
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@null"
android:hint="输入新密码"
android:textColor="@color/color_32"
android:textColorHint="@color/color_96"
android:textSize="14sp" />
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:background="@null"
android:hint="再次输入新密码"
android:textColor="@color/color_32"
android:textColorHint="@color/color_96"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:gravity="center"
android:background="@drawable/solid_25_4"
android:layout_marginTop="40dp"
android:layout_gravity="center_horizontal"
android:textSize="16sp"
android:textColor="@color/white"
android:text="完成"
android:layout_width="343dp"
android:layout_height="44dp"/>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:toolTitle="个人信息" />
<RelativeLayout
android:layout_width="74dp"
android:layout_height="74dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp">
<ImageView
android:layout_width="72dp"
android:layout_height="72dp"
android:src="@mipmap/placeholder_head" />
<ImageView
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/edit_camera" />
</RelativeLayout>
<LinearLayout
android:layout_marginTop="40dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:textColor="@color/color_32"
android:textSize="14sp"
android:text="姓名:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginEnd="4dp"
android:gravity="end"
android:layout_gravity="center_vertical"
android:textColor="@color/color_96"
android:textSize="14sp"
android:text="赵丽静"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_marginEnd="16dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
<LinearLayout
android:id="@+id/ll_change_phone"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:textColor="@color/color_32"
android:textSize="14sp"
android:text="手机号:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginEnd="4dp"
android:gravity="end"
android:layout_gravity="center_vertical"
android:textColor="@color/color_96"
android:textSize="14sp"
android:text="15435643667"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_marginEnd="16dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
<LinearLayout
android:id="@+id/ll_change_pwd"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:textColor="@color/color_32"
android:textSize="14sp"
android:text="密码:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginEnd="4dp"
android:gravity="end"
android:layout_gravity="center_vertical"
android:textColor="@color/color_96"
android:textSize="14sp"
android:text="qwrrt"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_marginEnd="16dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<View
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="8dp">
</View>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:textColor="@color/color_32"
android:textSize="14sp"
android:text="身份证号:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginEnd="4dp"
android:gravity="end"
android:layout_gravity="center_vertical"
android:textColor="@color/color_96"
android:textSize="14sp"
android:text="154356436675475467567435"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:visibility="invisible"
android:layout_marginEnd="16dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:textColor="@color/color_32"
android:textSize="14sp"
android:text="部门:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginEnd="4dp"
android:gravity="end"
android:layout_gravity="center_vertical"
android:textColor="@color/color_96"
android:textSize="14sp"
android:text="工程部"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:visibility="invisible"
android:layout_marginEnd="16dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:textColor="@color/color_32"
android:textSize="14sp"
android:text="岗位:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginEnd="4dp"
android:gravity="end"
android:layout_gravity="center_vertical"
android:textColor="@color/color_96"
android:textSize="14sp"
android:text="设备工程师"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:visibility="invisible"
android:layout_marginEnd="16dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<View
android:layout_marginStart="16dp"
android:background="@color/color_f7"
android:layout_width="match_parent"
android:layout_height="1dp">
</View>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical">
<include layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:toolTitle="直播列表" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
style="@style/SearchTab"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:overScrollMode="never"
app:tabMode="auto"
app:tabSelectedTextColor="@color/color_252"
app:tabTextColor="@color/color_96" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.viewpager.widget.ViewPager>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="@color/white"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:toolTitle="我的证书" />
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:toolTitle="我的错题" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
style="@style/SearchTab"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:overScrollMode="never"
app:tabMode="auto"
app:tabSelectedTextColor="@color/color_252"
app:tabTextColor="@color/color_96" />
<View
android:layout_width="match_parent"
android:layout_height="8dp"
android:background="@color/color_f7"></View>
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.viewpager.widget.ViewPager>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:toolTitle="答题记录" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
style="@style/SearchTab"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:overScrollMode="never"
app:tabMode="auto"
app:tabSelectedTextColor="@color/color_252"
app:tabTextColor="@color/color_96" />
<View
android:layout_width="match_parent"
android:layout_height="8dp"
android:background="@color/color_f7"></View>
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.viewpager.widget.ViewPager>
</LinearLayout>
\ No newline at end of file
... ...
... ... @@ -4,10 +4,336 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="mine"
<include layout="@layout/layout_tool_bar_theme" />
<LinearLayout
android:background="@mipmap/mine_bg"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:src="@mipmap/placeholder_head"
android:layout_marginStart="16dp"
android:layout_marginTop="105dp"
android:layout_width="72dp"
android:layout_height="72dp"/>
<LinearLayout
android:layout_marginTop="95dp"
android:layout_marginStart="20dp"
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<TextView
android:text="赵丽静"
android:textColor="@color/white"
android:textSize="28sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginTop="8dp"
android:drawablePadding="4dp"
android:textSize="12sp"
android:textColor="@color/white"
android:drawableStart="@mipmap/mine_phone"
android:text="15674678755"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_marginTop="8dp"
android:text="工程部-设备工程师"
android:textColor="@color/white"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<ImageView
android:id="@+id/iv_edit_info"
android:layout_marginEnd="16dp"
android:layout_marginTop="95dp"
android:src="@mipmap/mine_edit"
android:background="@color/color_25"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="wrap_content">
<RelativeLayout
android:layout_marginTop="20dp"
android:layout_marginStart="24dp"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/color_32"
android:textSize="12sp"
android:drawablePadding="8dp"
android:drawableTop="@mipmap/mine_banjirenwu"
android:text="班级任务"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="20dp"
android:layout_marginStart="24dp"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/color_32"
android:textSize="12sp"
android:drawablePadding="8dp"
android:drawableTop="@mipmap/mine_xianxiapeixun"
android:text="线下培训"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="20dp"
android:layout_marginStart="24dp"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/color_32"
android:textSize="12sp"
android:drawablePadding="8dp"
android:drawableTop="@mipmap/mine_xueqingfankui"
android:text="学情反馈"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="20dp"
android:layout_marginStart="24dp"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:textColor="@color/color_32"
android:textSize="12sp"
android:drawablePadding="8dp"
android:drawableTop="@mipmap/mine_xuexibaogao"
android:text="学习报告"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_mine_cuoti"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="52dp">
<TextView
android:drawablePadding="12dp"
android:drawableStart="@mipmap/mine_wodecuoti"
android:layout_marginStart="16dp"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_32"
android:text="我的错题"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="16dp"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_mine_datijilu"
android:layout_width="match_parent"
android:layout_height="52dp">
<TextView
android:drawablePadding="12dp"
android:drawableStart="@mipmap/mine_datijilu"
android:layout_marginStart="16dp"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_32"
android:text="答题记录"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="16dp"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/mine_zhengjian"
android:layout_width="match_parent"
android:layout_height="52dp">
<TextView
android:drawablePadding="12dp"
android:drawableStart="@mipmap/mine_wodezhengjian"
android:layout_marginStart="16dp"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_32"
android:text="我的证件"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="16dp"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_mine_shoucang"
android:layout_width="match_parent"
android:layout_height="52dp">
<TextView
android:drawablePadding="12dp"
android:drawableStart="@mipmap/mine_wodeshoucang"
android:layout_marginStart="16dp"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_32"
android:text="我的收藏"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="16dp"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_mine_liaotianjilu"
android:layout_width="match_parent"
android:layout_height="52dp">
<TextView
android:drawablePadding="12dp"
android:drawableStart="@mipmap/mine_wodeliaotianjilu"
android:layout_marginStart="16dp"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_32"
android:text="我的聊天记录"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="16dp"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_mine_tousuyujianyi"
android:layout_width="match_parent"
android:layout_height="52dp">
<TextView
android:drawablePadding="12dp"
android:drawableStart="@mipmap/mine_tousuyujianyi"
android:layout_marginStart="16dp"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_32"
android:text="投诉与建议"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="16dp"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_mine_lianxikefu"
android:layout_width="match_parent"
android:layout_height="52dp">
<TextView
android:drawablePadding="12dp"
android:drawableStart="@mipmap/mine_lianxikefu"
android:layout_marginStart="16dp"
android:layout_centerVertical="true"
android:textSize="14sp"
android:textColor="@color/color_32"
android:text="联系客服"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="16dp"
android:src="@mipmap/ic_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@color/white"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:overScrollMode="never"
android:scrollbars="none"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/white"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="16dp"
android:overScrollMode="never"
android:scrollbars="none"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/online_recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:overScrollMode="never"
android:paddingTop="4dp"
android:paddingBottom="12dp"
android:scrollbars="none"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="2" />
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="@color/white"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:overScrollMode="never"
android:scrollbars="none"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="136dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/solid_eff2_4">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_question_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="考试问卷名称(焊工)"
android:textColor="@color/color_32"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_margin="16dp"
android:background="@color/color_dcdee0">
</View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="提交时间:"
android:textColor="@color/color_96"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_commit_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="16dp"
android:text="2021-08-23 08:30"
android:textColor="@color/color_32"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="分数:"
android:textColor="@color/color_96"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="52dp"
android:layout_marginEnd="16dp"
android:text="100分"
android:textColor="@color/color_32"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_margin="12dp"
android:src="@mipmap/good" />
</RelativeLayout>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="82dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
android:background="@mipmap/item_error_question_bg"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_question_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:text="男子从国外赶回陪产,回家第二天被隔离:孩子出生了我却见不到?"
android:textColor="@color/color_32"
android:textSize="14sp" />
<ImageView
android:id="@+id/iv_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp"
android:src="@mipmap/item_error_question_del" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="83dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/solid_eff2_4"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_question_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="16dp"
android:layout_weight="1"
android:drawableStart="@mipmap/item_special_exercises_icon"
android:drawablePadding="8dp"
android:text="专项练习(焊工)"
android:textColor="@color/color_32"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:layout_marginEnd="12dp"
android:text="2020-09-10 12:00"
android:textColor="@color/color_96"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="52dp"
android:layout_marginTop="8dp"
android:background="@drawable/solid_e3f1ff"
android:paddingStart="8dp"
android:paddingTop="2dp"
android:paddingEnd="8dp"
android:paddingBottom="2dp"
android:text="答对:50/100"
android:textColor="@color/color_25"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
... ...
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.SecurityTrainMaster" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<style name="Theme.SecurityTrainMaster" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
... ...
... ... @@ -24,5 +24,10 @@
<color name="color_33">#333333</color>
<color name="color_eff2">#EFF2F6</color>
<color name="color_10BE8A">#10BE8A</color>
<color name="color_e8">#00E8A1</color>
<color name="color_e9">#E9405A</color>
<color name="color_f7">#F7F8FA</color>
<color name="color_e3">#E3F1FF</color>
<color name="color_dcdee0">#DCDEE0</color>
</resources>
\ No newline at end of file
... ...
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.SecurityTrainMaster" parent="Theme.MaterialComponents.Light.NoActionBar">
<style name="Theme.SecurityTrainMaster" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
... ...