Skip to content

Commit 8aad113

Browse files
committed
添加了关注相关 api 和界面
1 parent bb0448a commit 8aad113

File tree

15 files changed

+133
-45
lines changed

15 files changed

+133
-45
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class CategoryDetailActivity : BaseActivity(), CategoryDetailContract.View {
9191
}
9292

9393
override fun showLoading() {
94-
multipleStatusView.showLoading()
94+
// multipleStatusView.showLoading()
9595

9696
}
9797

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,17 @@ import java.util.*
2424
class MainActivity : BaseActivity() {
2525

2626

27-
private val mTitles = arrayOf("每日精选", "分类", "热门", "我的")
27+
private val mTitles = arrayOf("每日精选", "发现", "热门", "我的")
2828

2929
// 未被选中的图标
30-
private val mIconUnSelectIds = intArrayOf(R.mipmap.ic_home_normal, R.mipmap.ic_category_normal, R.mipmap.ic_hot_normal, R.mipmap.ic_mine_normal)
30+
private val mIconUnSelectIds = intArrayOf(R.mipmap.ic_home_normal, R.mipmap.ic_discovery_normal, R.mipmap.ic_hot_normal, R.mipmap.ic_mine_normal)
3131
// 被选中的图标
32-
private val mIconSelectIds = intArrayOf(R.mipmap.ic_home_selected, R.mipmap.ic_category_selected, R.mipmap.ic_hot_selected, R.mipmap.ic_mine_selected)
32+
private val mIconSelectIds = intArrayOf(R.mipmap.ic_home_selected, R.mipmap.ic_discovery_selected, R.mipmap.ic_hot_selected, R.mipmap.ic_mine_selected)
3333

3434
private val mTabEntities = ArrayList<CustomTabEntity>()
3535

3636
private var mHomeFragment: HomeFragment? = null
37-
private var mCategoryFragment: DiscoveryFragment? = null
37+
private var mDiscoveryFragment: DiscoveryFragment? = null
3838
private var mHotFragment: HotFragment? = null
3939
private var mMeiTuFragment: MineFragment?=null
4040

@@ -93,11 +93,11 @@ class MainActivity : BaseActivity() {
9393
transaction.show(mHomeFragment)
9494
}
9595
1 //分类
96-
-> if (mCategoryFragment == null) {
97-
mCategoryFragment = DiscoveryFragment.getInstance(mTitles[position])
98-
transaction.add(R.id.fl_container, mCategoryFragment, "category")
96+
-> if (mDiscoveryFragment == null) {
97+
mDiscoveryFragment = DiscoveryFragment.getInstance(mTitles[position])
98+
transaction.add(R.id.fl_container, mDiscoveryFragment, "category")
9999
} else {
100-
transaction.show(mCategoryFragment)
100+
transaction.show(mDiscoveryFragment)
101101
}
102102
2 //热门
103103
-> if ( mHotFragment == null) {
@@ -133,8 +133,8 @@ class MainActivity : BaseActivity() {
133133
if (null != mHomeFragment) {
134134
transaction.hide(mHomeFragment)
135135
}
136-
if (null != mCategoryFragment) {
137-
transaction.hide(mCategoryFragment)
136+
if (null != mDiscoveryFragment) {
137+
transaction.hide(mDiscoveryFragment)
138138
}
139139
if (null != mHotFragment) {
140140
transaction.hide(mHotFragment)

app/src/main/java/com/hazz/kotlinmvp/ui/adapter/FollowHorizontalAdapter.kt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
package com.hazz.kotlinmvp.ui.adapter
22

3+
import android.app.Activity
34
import android.content.Context
5+
import android.content.Intent
6+
import android.support.v4.app.ActivityCompat
7+
import android.support.v4.app.ActivityOptionsCompat
8+
import android.support.v4.util.Pair
9+
import android.view.View
410
import android.widget.ImageView
11+
import com.hazz.kotlinmvp.Constants
512
import com.hazz.kotlinmvp.R
613
import com.hazz.kotlinmvp.durationFormat
714
import com.hazz.kotlinmvp.glide.GlideApp
815
import com.hazz.kotlinmvp.mvp.model.bean.HomeBean
16+
import com.hazz.kotlinmvp.ui.activity.VideoDetailActivity
917
import com.hazz.kotlinmvp.view.recyclerview.ViewHolder
1018
import com.hazz.kotlinmvp.view.recyclerview.adapter.CommonAdapter
1119

@@ -42,8 +50,32 @@ class FollowHorizontalAdapter(mContext: Context, categoryList: ArrayList<HomeBea
4250
//标签
4351
holder.setText(R.id.tv_tag, "#${data.data.tags[0].name} / $timeFormat")
4452
}
53+
holder.setOnItemClickListener(listener = View.OnClickListener {
54+
goToVideoPlayer(mContext as Activity, holder.getView(R.id.iv_cover_feed), data)
55+
})
56+
4557

4658
}
4759

60+
/**
61+
* 跳转到视频详情页面播放
62+
*
63+
* @param activity
64+
* @param view
65+
*/
66+
private fun goToVideoPlayer(activity: Activity, view: View, itemData: HomeBean.Issue.Item) {
67+
val intent = Intent(activity, VideoDetailActivity::class.java)
68+
intent.putExtra(Constants.BUNDLE_VIDEO_DATA, itemData)
69+
intent.putExtra(VideoDetailActivity.Companion.TRANSITION, true)
70+
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
71+
val pair = Pair<View, String>(view, VideoDetailActivity.IMG_TRANSITION)
72+
val activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(
73+
activity, pair)
74+
ActivityCompat.startActivity(activity, intent, activityOptions.toBundle())
75+
} else {
76+
activity.startActivity(intent)
77+
activity.overridePendingTransition(R.anim.anim_in, R.anim.anim_out)
78+
}
79+
}
4880

4981
}

app/src/main/java/com/hazz/kotlinmvp/ui/fragment/DiscoveryFragment.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.hazz.kotlinmvp.R
66
import com.hazz.kotlinmvp.base.BaseFragment
77
import com.hazz.kotlinmvp.base.BaseFragmentAdapter
88
import com.hazz.kotlinmvp.utils.StatusBarUtil
9+
import com.hazz.kotlinmvp.view.TabLayoutHelper
910
import kotlinx.android.synthetic.main.fragment_hot.*
1011

1112
/**
@@ -38,7 +39,7 @@ class DiscoveryFragment:BaseFragment(){
3839
StatusBarUtil.darkMode(activity)
3940
StatusBarUtil.setPaddingSmart(activity, toolbar)
4041

41-
tv_header_title.text = "发现"
42+
tv_header_title.text = mTitle
4243

4344
tabList.add("关注")
4445
tabList.add("分类")
@@ -50,6 +51,7 @@ class DiscoveryFragment:BaseFragment(){
5051
*/
5152
mViewPager.adapter = BaseFragmentAdapter(childFragmentManager,fragments,tabList)
5253
mTabLayout.setupWithViewPager(mViewPager)
54+
TabLayoutHelper.setUpIndicatorWidth(mTabLayout)
5355

5456

5557

app/src/main/java/com/hazz/kotlinmvp/ui/fragment/FollowFragment.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import com.hazz.kotlinmvp.base.BaseFragment
88
import com.hazz.kotlinmvp.mvp.contract.FollowContract
99
import com.hazz.kotlinmvp.mvp.model.bean.HomeBean
1010
import com.hazz.kotlinmvp.mvp.presenter.FollowPresenter
11+
import com.hazz.kotlinmvp.net.exception.ErrorStatus
12+
import com.hazz.kotlinmvp.showToast
1113
import com.hazz.kotlinmvp.ui.adapter.FollowAdapter
1214
import kotlinx.android.synthetic.main.layout_recyclerview.*
1315

@@ -76,11 +78,12 @@ class FollowFragment : BaseFragment(), FollowContract.View {
7678

7779

7880
override fun showLoading() {
81+
multipleStatusView.showLoading()
7982

8083
}
8184

8285
override fun dismissLoading() {
83-
86+
multipleStatusView.showContent()
8487
}
8588

8689
override fun setFollowInfo(issue: HomeBean.Issue) {
@@ -89,8 +92,16 @@ class FollowFragment : BaseFragment(), FollowContract.View {
8992
mFollowAdapter.addData(itemList)
9093
}
9194

95+
/**
96+
* 显示错误信息
97+
*/
9298
override fun showError(errorMsg: String, errorCode: Int) {
93-
99+
showToast(errorMsg)
100+
if (errorCode == ErrorStatus.NETWORK_ERROR) {
101+
mLayoutStatusView?.showNoNetwork()
102+
} else {
103+
mLayoutStatusView?.showError()
104+
}
94105
}
95106

96107
override fun onDestroy() {

app/src/main/java/com/hazz/kotlinmvp/ui/fragment/HotFragment.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.hazz.kotlinmvp.mvp.contract.HotTabContract
99
import com.hazz.kotlinmvp.mvp.model.bean.TabInfoBean
1010
import com.hazz.kotlinmvp.mvp.presenter.HotTabPresenter
1111
import com.hazz.kotlinmvp.utils.StatusBarUtil
12+
import com.hazz.kotlinmvp.view.TabLayoutHelper
1213
import kotlinx.android.synthetic.main.fragment_hot.*
1314

1415
/**
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.hazz.kotlinmvp.view
2+
3+
import android.annotation.SuppressLint
4+
import android.os.Build
5+
import android.support.design.widget.TabLayout
6+
import android.widget.LinearLayout
7+
import com.hazz.kotlinmvp.utils.DisplayManager
8+
import java.lang.reflect.Field
9+
10+
/**
11+
* Created by xuhao on 2017/12/7.
12+
* desc:
13+
*/
14+
object TabLayoutHelper{
15+
16+
@SuppressLint("ObsoleteSdkInt")
17+
fun setUpIndicatorWidth(tabLayout: TabLayout) {
18+
val tabLayoutClass = tabLayout.javaClass
19+
var tabStrip: Field? = null
20+
try {
21+
tabStrip = tabLayoutClass.getDeclaredField("mTabStrip")
22+
tabStrip!!.isAccessible = true
23+
} catch (e: NoSuchFieldException) {
24+
e.printStackTrace()
25+
}
26+
27+
var layout: LinearLayout? = null
28+
try {
29+
if (tabStrip != null) {
30+
layout = tabStrip.get(tabLayout) as LinearLayout
31+
}
32+
for (i in 0 until layout!!.childCount) {
33+
val child = layout.getChildAt(i)
34+
child.setPadding(0, 0, 0, 0)
35+
val params = LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1f)
36+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
37+
params.marginStart = DisplayManager.dip2px(50f)!!
38+
params.marginEnd = DisplayManager.dip2px(50f)!!
39+
}
40+
child.layoutParams = params
41+
child.invalidate()
42+
}
43+
} catch (e: IllegalAccessException) {
44+
e.printStackTrace()
45+
}
46+
47+
}
48+
}

app/src/main/res/layout/fragment_category.xml

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,4 @@
1919
android:paddingBottom="51dp"
2020
tools:listitem="@layout/item_category" />
2121

22-
23-
<!--<android.support.v7.widget.Toolbar-->
24-
<!--android:id="@+id/toolbar"-->
25-
<!--android:layout_width="match_parent"-->
26-
<!--android:layout_height="?attr/actionBarSize"-->
27-
<!--android:background="@color/color_title_bg">-->
28-
29-
<!--<RelativeLayout-->
30-
<!--android:id="@+id/rel_toolbar"-->
31-
<!--android:layout_width="match_parent"-->
32-
<!--android:layout_height="match_parent">-->
33-
34-
<!--<TextView-->
35-
<!--android:id="@+id/tv_header_title"-->
36-
<!--android:layout_width="wrap_content"-->
37-
<!--android:layout_height="wrap_content"-->
38-
<!--android:layout_centerHorizontal="true"-->
39-
<!--android:layout_centerVertical="true"-->
40-
<!--android:text="@string/category_title"-->
41-
<!--android:textColor="@color/color_item_title"-->
42-
<!--android:textSize="18sp"-->
43-
<!--android:textStyle="bold" />-->
44-
<!--</RelativeLayout>-->
45-
<!--</android.support.v7.widget.Toolbar>-->
46-
4722
</com.classic.common.MultipleStatusView>

app/src/main/res/layout/fragment_hot.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,15 @@
3434
android:layout_width="match_parent"
3535
android:layout_height="40dp"
3636
android:background="@color/color_title_bg"
37+
app:tabMinWidth="100dp"
3738
app:tabIndicatorColor="#000"
3839
app:tabIndicatorHeight="2dp"
3940
app:tabSelectedTextColor="#000"
4041
app:tabTextColor="#5000" />
42+
<View
43+
android:layout_width="match_parent"
44+
android:layout_height="@dimen/division_line"
45+
android:background="@color/color_light_black"/>
4146

4247
<android.support.v4.view.ViewPager
4348
android:id="@+id/mViewPager"
Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
3-
android:id="@+id/mRecyclerView"
2+
<com.classic.common.MultipleStatusView xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:id="@+id/multipleStatusView"
45
android:layout_width="match_parent"
5-
android:layout_height="wrap_content"
6-
android:clipToPadding="false"
7-
android:paddingBottom="@dimen/padding_tab_layout_bottom">
6+
android:layout_height="match_parent"
7+
android:background="@color/backgroundColor"
8+
app:emptyView="@layout/layout_empty_view"
9+
app:errorView="@layout/layout_error_view"
10+
app:loadingView="@layout/layout_loading_view"
11+
app:noNetworkView="@layout/layout_network_view">
812

9-
</android.support.v7.widget.RecyclerView>
13+
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
14+
android:id="@+id/mRecyclerView"
15+
android:layout_width="match_parent"
16+
android:layout_height="wrap_content"
17+
android:clipToPadding="false"
18+
android:paddingBottom="@dimen/padding_tab_layout_bottom">
19+
20+
</android.support.v7.widget.RecyclerView>
21+
</com.classic.common.MultipleStatusView>

0 commit comments

Comments
 (0)