Skip to content

Commit 9a1eec9

Browse files
committed
app模块:首页折扣和话题完成,我的页面和设置界面完成
1 parent 76c7b7b commit 9a1eec9

File tree

23 files changed

+655
-45
lines changed

23 files changed

+655
-45
lines changed

App/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apply plugin: 'com.android.application'
22

33
apply plugin: 'kotlin-android'
44
apply plugin: 'kotlin-android-extensions'
5+
apply plugin: 'kotlin-kapt'
56

67
android {
78
compileSdkVersion 28

App/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<category android:name="android.intent.category.LAUNCHER"/>
2323
</intent-filter>
2424
</activity>
25+
<activity android:name=".ui.activity.SettingActivity"/>
2526
</application>
2627

2728
</manifest>

App/src/main/java/com/hyd/mallofkotlin/common/MainConstant.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const val HOME_DISCOUNT_FIVE = "https://img14.360buyimg.com/n1/s190x190_jfs/t752
2727
首页话题图片
2828
*/
2929
const val HOME_TOPIC_ONE = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1502881866380&di=d252e1e8dd3a5a836fe360b02531f917&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01f5ce56e112ef6ac72531cb37bec4.png%40900w_1l_2o_100sh.jpg"
30-
const val HOME_TOPIC_TWO = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1502881904494&di=7a16834200a70469e1d3b6a4ab04c514&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F010d11554baebf000001bf721352ac.jpg"
30+
const val HOME_TOPIC_TWO = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1564479588218&di=642af380179be27067ad539d0495e072&imgtype=0&src=http%3A%2F%2Fgss0.baidu.com%2F9vo3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2Fb151f8198618367acb54bde32b738bd4b31ce52b.jpg"
3131
const val HOME_TOPIC_THREE = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1502876222250&di=aa3290c84822ba5570f19cb76e1012af&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F0146d25768b5a10000018c1b00cf27.jpg%40900w_1l_2o_100sh.jpg"
3232
const val HOME_TOPIC_FOUR = "http://img.zcool.cn/community/01796c58772f66a801219c77e4fc04.png@1280w_1l_2o_100sh.png"
3333
const val HOME_TOPIC_FIVE = "http://img.zcool.cn/community/0154805791ffeb0000012e7edba495.jpg@900w_1l_2o_100sh.jpg"
Lines changed: 63 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,85 @@
11
package com.hyd.mallofkotlin.ui.activity
22

33
import android.os.Bundle
4-
import android.support.v7.app.AppCompatActivity
4+
import android.support.v4.app.Fragment
5+
import com.ashokvarma.bottomnavigation.BottomNavigationBar
6+
import com.hyd.base.ui.activity.BaseActivity
57
import com.hyd.mallofkotlin.R
68
import com.hyd.mallofkotlin.ui.fragment.HomeFragment
9+
import com.hyd.mallofkotlin.ui.fragment.MineFragment
710
import kotlinx.android.synthetic.main.activity_main.*
11+
import java.util.*
812

9-
class MainActivity : AppCompatActivity() {
13+
class MainActivity : BaseActivity() {
14+
15+
private val mFragments: Stack<Fragment> = Stack()
16+
17+
private val mHomeFragment: HomeFragment by lazy { HomeFragment() }
18+
private val mCategoryFragment: HomeFragment by lazy { HomeFragment() }
19+
private val mCartFragment: HomeFragment by lazy { HomeFragment() }
20+
private val mMsgFragment: HomeFragment by lazy { HomeFragment() }
21+
private val mMineFragment: MineFragment by lazy { MineFragment() }
1022

1123
override fun onCreate(savedInstanceState: Bundle?) {
1224
super.onCreate(savedInstanceState)
1325
setContentView(R.layout.activity_main)
1426

15-
mBottomNavBar.checkCartBadge(10)
16-
mBottomNavBar.checkMsgBadge(false)
17-
18-
initView()
27+
// initView()
28+
initFragment()
29+
initBottomNav()
30+
changeFragment(0)
1931
}
2032

33+
2134
private fun initView() {
2235
val manager = supportFragmentManager.beginTransaction()
2336
manager.replace(R.id.mContainer, HomeFragment())
2437
manager.commit()
2538
}
39+
40+
/**
41+
* 初始化fragment栈管理
42+
*/
43+
private fun initFragment() {
44+
val manager = supportFragmentManager.beginTransaction()
45+
manager.add(R.id.mContainer, mHomeFragment)
46+
manager.add(R.id.mContainer, mCategoryFragment)
47+
manager.add(R.id.mContainer, mCartFragment)
48+
manager.add(R.id.mContainer, mMsgFragment)
49+
manager.add(R.id.mContainer, mMineFragment)
50+
manager.commit()
51+
52+
mFragments.add(mHomeFragment)
53+
mFragments.add(mCategoryFragment)
54+
mFragments.add(mCartFragment)
55+
mFragments.add(mMsgFragment)
56+
mFragments.add(mMineFragment)
57+
}
58+
59+
private fun initBottomNav() {
60+
mBottomNavBar.setTabSelectedListener(object : BottomNavigationBar.OnTabSelectedListener{
61+
override fun onTabReselected(position: Int) {
62+
}
63+
64+
override fun onTabUnselected(position: Int) {
65+
}
66+
67+
override fun onTabSelected(position: Int) {
68+
changeFragment(position)
69+
}
70+
})
71+
mBottomNavBar.checkMsgBadge(false)
72+
mBottomNavBar.checkCartBadge(0)
73+
}
74+
75+
private fun changeFragment(position: Int) {
76+
val manager = supportFragmentManager.beginTransaction()
77+
for (fragment in mFragments) {
78+
manager.hide(fragment)
79+
}
80+
manager.show(mFragments[position])
81+
manager.commit()
82+
}
2683
}
2784

2885

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.hyd.mallofkotlin.ui.activity
2+
3+
import android.os.Bundle
4+
import android.view.View
5+
import com.hyd.base.ui.activity.BaseActivity
6+
import com.hyd.mallofkotlin.R
7+
import com.hyd.user.utils.UserPrefsUtils
8+
import kotlinx.android.synthetic.main.activity_setting.*
9+
10+
/**
11+
* Created by hydCoder on 2019/7/30.
12+
* 以梦为马,明日天涯。
13+
*/
14+
class SettingActivity: BaseActivity(), View.OnClickListener {
15+
16+
override fun onCreate(savedInstanceState: Bundle?) {
17+
super.onCreate(savedInstanceState)
18+
setContentView(R.layout.activity_setting)
19+
20+
initView()
21+
}
22+
23+
private fun initView() {
24+
mLogoutBtn.setOnClickListener(this)
25+
}
26+
27+
override fun onClick(view: View) {
28+
when (view.id) {
29+
R.id.mLogoutBtn -> {
30+
UserPrefsUtils.putUserInfo(null)
31+
finish()
32+
}
33+
}
34+
}
35+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.hyd.mallofkotlin.ui.adapter
2+
3+
import android.content.Context
4+
import android.graphics.Paint
5+
import android.support.v7.widget.RecyclerView
6+
import android.view.LayoutInflater
7+
import android.view.View
8+
import android.view.ViewGroup
9+
import com.hyd.base.ext.loadIamge
10+
import com.hyd.mallofkotlin.R
11+
import com.kotlin.base.ui.adapter.BaseRecyclerViewAdapter
12+
import kotlinx.android.synthetic.main.layout_home_discount_item.view.*
13+
14+
/**
15+
* Created by hydCoder on 2019/7/30.
16+
* 以梦为马,明日天涯。
17+
*/
18+
class HomeDiscountAdapter(mContext: Context) :
19+
BaseRecyclerViewAdapter<String, HomeDiscountAdapter.ViewHolder>(mContext) {
20+
21+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
22+
val rootView = LayoutInflater.from(mContext).inflate(R.layout.layout_home_discount_item, parent, false)
23+
return ViewHolder(rootView)
24+
}
25+
26+
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
27+
super.onBindViewHolder(holder, position)
28+
holder.itemView.mGoodsIconIv.loadIamge(dataList.get(position))
29+
30+
// 假数据
31+
holder.itemView.mDiscountAfterTv.text = "¥99.80"
32+
holder.itemView.mDiscountBeforeTv.text = "¥299.00"
33+
}
34+
35+
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
36+
init {
37+
itemView.mDiscountBeforeTv.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
38+
itemView.mDiscountBeforeTv.paint.isAntiAlias = true
39+
}
40+
}
41+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.hyd.mallofkotlin.ui.adapter
2+
3+
import android.content.Context
4+
import android.support.v4.view.PagerAdapter
5+
import android.view.LayoutInflater
6+
import android.view.View
7+
import android.view.ViewGroup
8+
import com.hyd.base.ext.loadIamge
9+
import com.hyd.mallofkotlin.R
10+
import kotlinx.android.synthetic.main.layout_topic_item.view.*
11+
12+
/**
13+
* Created by hydCoder on 2019/7/30.
14+
* 以梦为马,明日天涯。
15+
*/
16+
class TopicAdapter(private val context: Context, private val list: List<String>): PagerAdapter() {
17+
18+
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
19+
container.removeView(`object` as View)
20+
}
21+
22+
override fun isViewFromObject(paramView: View, paramObject: Any): Boolean {
23+
return paramView == paramObject
24+
}
25+
26+
override fun getCount(): Int {
27+
return list.size
28+
}
29+
30+
override fun instantiateItem(container: ViewGroup, position: Int): Any {
31+
val rootView = LayoutInflater.from(context).inflate(R.layout.layout_topic_item, null)
32+
rootView.mTopicIv.loadIamge(list[position])
33+
container.addView(rootView)
34+
return rootView
35+
}
36+
}

App/src/main/java/com/hyd/mallofkotlin/ui/fragment/HomeFragment.kt

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
package com.hyd.mallofkotlin.ui.fragment
22

33
import android.os.Bundle
4+
import android.support.v7.widget.LinearLayoutManager
45
import android.view.LayoutInflater
56
import android.view.View
67
import android.view.ViewGroup
78
import com.hyd.base.ui.fragment.BaseFragment
89
import com.hyd.base.widgets.BannerImageLoader
910
import com.hyd.mallofkotlin.R
10-
import com.hyd.mallofkotlin.common.HOME_BANNER_FOUR
11-
import com.hyd.mallofkotlin.common.HOME_BANNER_ONE
12-
import com.hyd.mallofkotlin.common.HOME_BANNER_THREE
13-
import com.hyd.mallofkotlin.common.HOME_BANNER_TWO
11+
import com.hyd.mallofkotlin.common.*
12+
import com.hyd.mallofkotlin.ui.adapter.HomeDiscountAdapter
13+
import com.hyd.mallofkotlin.ui.adapter.TopicAdapter
1414
import com.youth.banner.BannerConfig
1515
import com.youth.banner.Transformer
1616
import kotlinx.android.synthetic.main.fragment_home.*
17+
import me.crosswall.lib.coverflow.CoverFlow
1718

1819
/**
1920
* Created by hydCoder on 2019/7/26.
2021
* 以梦为马,明日天涯。
2122
*/
22-
class HomeFragment: BaseFragment() {
23+
class HomeFragment : BaseFragment() {
2324

2425

2526
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
@@ -30,6 +31,8 @@ class HomeFragment: BaseFragment() {
3031
super.onViewCreated(view, savedInstanceState)
3132
initBanner()
3233
initNews()
34+
initDiscount()
35+
initTopic()
3336
}
3437

3538

@@ -47,4 +50,35 @@ class HomeFragment: BaseFragment() {
4750
private fun initNews() {
4851
mNewsFlipperView.setData(arrayOf("夏日炎炎,第一波福利还有30秒到达战场", "新用户立领1000元优惠券", "大牌上新,诚意满满"))
4952
}
53+
54+
private fun initDiscount() {
55+
val layoutManager = LinearLayoutManager(context)
56+
layoutManager.orientation = LinearLayoutManager.HORIZONTAL
57+
58+
mHomeDiscountRv.layoutManager = layoutManager
59+
60+
val homeDiscountAdapter = HomeDiscountAdapter(context!!)
61+
homeDiscountAdapter.setData(
62+
mutableListOf(
63+
HOME_DISCOUNT_ONE,
64+
HOME_DISCOUNT_TWO,
65+
HOME_DISCOUNT_THREE,
66+
HOME_DISCOUNT_FOUR,
67+
HOME_DISCOUNT_FIVE
68+
)
69+
)
70+
mHomeDiscountRv.adapter = homeDiscountAdapter
71+
}
72+
73+
private fun initTopic() {
74+
val topicAdapter = TopicAdapter(
75+
context!!,
76+
listOf(HOME_TOPIC_ONE, HOME_TOPIC_TWO, HOME_TOPIC_THREE, HOME_TOPIC_FOUR, HOME_TOPIC_FIVE)
77+
)
78+
mTopicPager.adapter = topicAdapter
79+
mTopicPager.currentItem = 1
80+
mTopicPager.offscreenPageLimit = 5
81+
82+
CoverFlow.Builder().with(mTopicPager).scale(0.3f).pagerMargin(-30.0f).spaceSize(0.0f).build()
83+
}
5084
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.hyd.mallofkotlin.ui.fragment
2+
3+
import android.os.Bundle
4+
import android.view.LayoutInflater
5+
import android.view.View
6+
import android.view.ViewGroup
7+
import com.hyd.base.ext.loadIamge
8+
import com.hyd.base.ui.fragment.BaseFragment
9+
import com.hyd.base.utils.AppPrefsUtils
10+
import com.hyd.mallofkotlin.R
11+
import com.hyd.mallofkotlin.ui.activity.SettingActivity
12+
import com.hyd.provider.common.ProviderConstant
13+
import com.hyd.provider.common.isLogined
14+
import com.hyd.user.ui.activity.LoginActivity
15+
import com.hyd.user.ui.activity.UserInfoActivity
16+
import kotlinx.android.synthetic.main.fragment_me.*
17+
import org.jetbrains.anko.startActivity
18+
19+
/**
20+
* Created by hydCoder on 2019/7/26.
21+
* 以梦为马,明日天涯。
22+
*/
23+
class MineFragment : BaseFragment(), View.OnClickListener {
24+
25+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
26+
return inflater.inflate(R.layout.fragment_me, null)
27+
}
28+
29+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
30+
super.onViewCreated(view, savedInstanceState)
31+
initView()
32+
}
33+
34+
override fun onStart() {
35+
super.onStart()
36+
loadData()
37+
}
38+
39+
private fun initView() {
40+
mUserIconIv.setOnClickListener(this)
41+
mUserNameTv.setOnClickListener(this)
42+
mSettingTv.setOnClickListener(this)
43+
}
44+
45+
private fun loadData() {
46+
if (isLogined()) {
47+
mUserIconIv.loadIamge(AppPrefsUtils.getString(ProviderConstant.KEY_SP_USER_ICON))
48+
mUserNameTv.text = AppPrefsUtils.getString(ProviderConstant.KEY_SP_USER_NAME)
49+
} else {
50+
mUserIconIv.setImageResource(R.drawable.icon_default_user)
51+
mUserNameTv.text = getString(R.string.un_login_text)
52+
}
53+
}
54+
55+
override fun onClick(view: View) {
56+
when (view.id) {
57+
R.id.mUserIconIv, R.id.mUserNameTv -> {
58+
if (isLogined()) {
59+
activity!!.startActivity<UserInfoActivity>()
60+
} else {
61+
activity!!.startActivity<LoginActivity>()
62+
}
63+
}
64+
R.id.mSettingTv -> {
65+
activity!!.startActivity<SettingActivity>()
66+
}
67+
}
68+
}
69+
}

0 commit comments

Comments
 (0)