Skip to content

Commit 6945a06

Browse files
committed
优化首页切换 Fragment Kotlin 的用法;
1 parent 9dc2fdd commit 6945a06

File tree

3 files changed

+44
-52
lines changed

3 files changed

+44
-52
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ android {
2020
applicationId "com.hazz.kotlinmvp"
2121
minSdkVersion rootProject.ext.android.minSdkVersion
2222
targetSdkVersion rootProject.ext.android.targetSdkVersion
23-
versionCode 4
24-
versionName "1.2.1"
23+
versionCode 5
24+
versionName "1.2.2"
2525
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
2626
javaCompileOptions {
2727
annotationProcessorOptions {

app/src/main/java/com/hazz/kotlinmvp/ui/activity/MainActivity.kt

Lines changed: 30 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class MainActivity : BaseActivity() {
3636
private var mHomeFragment: HomeFragment? = null
3737
private var mDiscoveryFragment: DiscoveryFragment? = null
3838
private var mHotFragment: HotFragment? = null
39-
private var mMineFragment: MineFragment?=null
39+
private var mMineFragment: MineFragment? = null
4040

4141
//默认为0
4242
private var mIndex = 0
@@ -58,7 +58,6 @@ class MainActivity : BaseActivity() {
5858
}
5959

6060

61-
6261
//初始化底部菜单
6362
private fun initTab() {
6463
(0 until mTitles.size)
@@ -84,40 +83,33 @@ class MainActivity : BaseActivity() {
8483
private fun switchFragment(position: Int) {
8584
val transaction = supportFragmentManager.beginTransaction()
8685
hideFragments(transaction)
87-
showToast(supportFragmentManager.fragments.size.toString())
88-
/*重复进入退出视频详情页会导致fragment不断增加*/
8986
when (position) {
90-
0 //首页
91-
-> if (mHomeFragment == null) {
92-
93-
mHomeFragment = HomeFragment.getInstance(mTitles[position])
94-
transaction.add(R.id.fl_container, mHomeFragment, "home")
95-
} else {
96-
transaction.show(mHomeFragment)
97-
}
98-
1 //发现
99-
-> if (mDiscoveryFragment == null) {
100-
mDiscoveryFragment = DiscoveryFragment.getInstance(mTitles[position])
101-
transaction.add(R.id.fl_container, mDiscoveryFragment, "discovery")
102-
} else {
103-
transaction.show(mDiscoveryFragment)
87+
0 // 首页
88+
-> mHomeFragment?.let {
89+
transaction.show(it)
90+
} ?: HomeFragment.getInstance(mTitles[position]).let {
91+
mHomeFragment = it
92+
transaction.add(R.id.fl_container, it, "home")
10493
}
105-
2 //热门
106-
-> if ( mHotFragment == null) {
107-
mHotFragment = HotFragment.getInstance(mTitles[position])
108-
transaction.add(R.id.fl_container, mHotFragment, "hot")
109-
}
110-
else {
111-
transaction.show(mHotFragment)
112-
}
113-
94+
1 //发现
95+
-> mDiscoveryFragment?.let {
96+
transaction.show(it)
97+
} ?: DiscoveryFragment.getInstance(mTitles[position]).let {
98+
mDiscoveryFragment = it
99+
transaction.add(R.id.fl_container, it, "discovery") }
100+
2 //热门
101+
-> mHotFragment?.let {
102+
transaction.show(it)
103+
} ?: HotFragment.getInstance(mTitles[position]).let {
104+
mHotFragment = it
105+
transaction.add(R.id.fl_container, it, "hot") }
114106
3 //我的
115-
-> if (mMineFragment == null) {
116-
mMineFragment = MineFragment.getInstance(mTitles[position])
117-
transaction.add(R.id.fl_container, mMineFragment, "mine")
118-
} else {
119-
transaction.show(mMineFragment)
120-
}
107+
-> mMineFragment?.let {
108+
transaction.show(it)
109+
} ?: MineFragment.getInstance(mTitles[position]).let {
110+
mMineFragment = it
111+
transaction.add(R.id.fl_container, it, "mine") }
112+
121113
else -> {
122114

123115
}
@@ -134,19 +126,10 @@ class MainActivity : BaseActivity() {
134126
* @param transaction transaction
135127
*/
136128
private fun hideFragments(transaction: FragmentTransaction) {
137-
if (null != mHomeFragment) {
138-
transaction.hide(mHomeFragment)
139-
}
140-
if (null != mDiscoveryFragment) {
141-
transaction.hide(mDiscoveryFragment)
142-
}
143-
if (null != mHotFragment) {
144-
transaction.hide(mHotFragment)
145-
}
146-
if (null != mMineFragment) {
147-
transaction.hide(mMineFragment)
148-
}
149-
129+
mHomeFragment?.let { transaction.hide(it) }
130+
mDiscoveryFragment?.let { transaction.hide(it) }
131+
mHotFragment?.let { transaction.hide(it) }
132+
mMineFragment?.let { transaction.hide(it) }
150133
}
151134

152135

@@ -166,6 +149,7 @@ class MainActivity : BaseActivity() {
166149
override fun initData() {
167150

168151
}
152+
169153
override fun start() {
170154

171155
}
@@ -186,5 +170,4 @@ class MainActivity : BaseActivity() {
186170
}
187171

188172

189-
190173
}

app/src/main/java/com/hazz/kotlinmvp/view/recyclerview/adapter/CommonAdapter.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import com.hazz.kotlinmvp.view.recyclerview.ViewHolder
1616

1717
abstract class CommonAdapter<T>(var mContext: Context, var mData: ArrayList<T>, //条目布局
1818
private var mLayoutId: Int) : RecyclerView.Adapter<ViewHolder>() {
19-
protected var mInflater: LayoutInflater?=null
19+
protected var mInflater: LayoutInflater? = null
2020
private var mTypeSupport: MultipleType<T>? = null
2121

2222
//使用接口回调点击事件
@@ -52,12 +52,21 @@ abstract class CommonAdapter<T>(var mContext: Context, var mData: ArrayList<T>,
5252
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
5353
//绑定数据
5454
bindData(holder, mData[position], position)
55+
56+
// if (mItemClickListener != null) {
57+
// holder.itemView.setOnClickListener { mItemClickListener!!.onItemClick(mData[position], position) }
58+
// }
59+
// //长按点击事件
60+
// if (mItemLongClickListener != null) {
61+
// holder.itemView.setOnLongClickListener { mItemLongClickListener!!.onItemLongClick(mData[position], position) }
62+
// }
5563
//条目点击事件
56-
if (mItemClickListener != null) {
64+
mItemClickListener?.let {
5765
holder.itemView.setOnClickListener { mItemClickListener!!.onItemClick(mData[position], position) }
5866
}
67+
5968
//长按点击事件
60-
if (mItemLongClickListener != null) {
69+
mItemLongClickListener?.let {
6170
holder.itemView.setOnLongClickListener { mItemLongClickListener!!.onItemLongClick(mData[position], position) }
6271
}
6372
}

0 commit comments

Comments
 (0)