Skip to content

Commit

Permalink
2.5.0 Refactoring Indicator (#36)
Browse files Browse the repository at this point in the history
* Convert part of java file to kotlin.

* Refactoring Indicator.

* Optimize Indicator.
  • Loading branch information
zhpanvip authored Nov 22, 2019
1 parent 34dc506 commit 936d6fe
Show file tree
Hide file tree
Showing 46 changed files with 758 additions and 725 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -380,9 +380,10 @@ public class FigureIndicatorView extends BaseIndicatorView {
- [x] 增添更多Indicator样式(2.3.+)
- [x] 支持一屏显示多页 (2.4.0)
- [x] v2.4.3版本着重优化提升性能
- [ ] v2.5.0优化整理Indicator,尽量修复Indicator SMOOTH模式下滑动问题
- [x] 重构Indicator,~~尽量修复Indicator SMOOTH模式下滑动问题~~
- [x] 目前Indicator部分代码比较乱,还有很大很大的优化空间,后续版本将持续优化(2.5.0对Indicator再次进行了重构,重构后代码已经很整洁,但仍然有优化空间)
- [ ] ViewPager更换为ViewPager2 (3.0.0)
- [ ] 目前Indicator部分代码比较乱,还有很大很大的优化空间,后续版本将持续优化




Expand Down
6 changes: 2 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ dependencies {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
testImplementation 'junit:junit:4.12'
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.github.chrisbanes:PhotoView:2.1.0'
Expand All @@ -54,7 +54,5 @@ dependencies {
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-beta-2'
implementation project(path: ':ideahttp')
api 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.core:core-ktx:1.1.0'
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.example.zhpan.circleviewpager.activity

import androidx.appcompat.app.AppCompatActivity

import android.os.Bundle

import java.util.ArrayList

abstract class BaseDataActivity : AppCompatActivity() {

protected var mDrawableList: MutableList<Int> = ArrayList()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initData()
}

private fun initData() {
for (i in 0..2) {
val drawable = resources.getIdentifier("guide$i", "drawable", packageName)
mDrawableList.add(drawable)
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.example.zhpan.circleviewpager.activity

import android.content.Context
import android.content.Intent
import android.os.Bundle

import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager


import com.example.zhpan.circleviewpager.R
import com.example.zhpan.circleviewpager.adapter.AdapterFragmentPager

import kotlinx.android.synthetic.main.activity_main.*


class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initData()
setListener()
}

private fun initData() {
val mAdapter = AdapterFragmentPager(supportFragmentManager)
vp_fragment!!.adapter = mAdapter
vp_fragment!!.disableTouchScroll(true)
vp_fragment!!.offscreenPageLimit = 2
vp_fragment!!.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {

}

override fun onPageSelected(position: Int) {
rg_tab!!.check(getCheckedId(position))
}

override fun onPageScrollStateChanged(state: Int) {

}
})
}

private fun getCheckedId(position: Int): Int {
var checkedId = R.id.rb_home
when (position) {
0 -> checkedId = R.id.rb_home
1 -> checkedId = R.id.rb_find
2 -> checkedId = R.id.rb_add
}
return checkedId
}

private fun setListener() {
rg_tab!!.setOnCheckedChangeListener { group, checkedId ->
if (checkedId == R.id.rb_home) {
vp_fragment!!.setCurrentItem(AdapterFragmentPager.PAGE_HOME, false)

} else if (checkedId == R.id.rb_find) {
vp_fragment!!.setCurrentItem(AdapterFragmentPager.PAGE_FIND, false)

} else if (checkedId == R.id.rb_add) {
vp_fragment!!.setCurrentItem(AdapterFragmentPager.PAGE_OTHERS, false)
}
}
}

companion object {
fun start(context: Context) {
context.startActivity(Intent(context, MainActivity::class.java))
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.example.zhpan.circleviewpager.activity


import android.os.Bundle

import com.example.zhpan.circleviewpager.R
import com.example.zhpan.circleviewpager.viewholder.PhotoViewHolder
import com.zhpan.bannerview.BannerViewPager
import com.zhpan.bannerview.constants.IndicatorSlideMode
import com.zhpan.bannerview.holder.HolderCreator

class PhotoViewActivity : BaseDataActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_banner_photo_view)
setTitle(R.string.wrapper_photo_view)
initViewPager()
}

private fun initViewPager() {
val bannerViewPager = findViewById<BannerViewPager<Int, PhotoViewHolder>>(R.id.viewpager)
bannerViewPager.setAutoPlay(false)
.setCanLoop(false)
.setHolderCreator { PhotoViewHolder() }
.setIndicatorSlideMode(IndicatorSlideMode.SMOOTH)
.create(mDrawableList)
bannerViewPager.currentItem = 1
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,14 @@ import com.example.zhpan.circleviewpager.viewholder.CustomPageViewHolder
import com.zhpan.bannerview.BannerViewPager
import com.zhpan.bannerview.adapter.OnPageChangeListenerAdapter
import com.zhpan.bannerview.constants.IndicatorSlideMode
import com.zhpan.bannerview.constants.IndicatorStyle
import com.zhpan.bannerview.constants.TransformerStyle
import com.zhpan.bannerview.holder.HolderCreator
import com.zhpan.bannerview.utils.BannerUtils

import java.util.ArrayList
import java.util.Random

import butterknife.ButterKnife
import butterknife.OnClick
import kotlinx.android.synthetic.main.activity_welcome.*

class WelcomeActivity : BaseDataActivity(), HolderCreator<CustomPageViewHolder> {
Expand All @@ -49,7 +48,6 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator<CustomPageViewHolder>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_welcome)
ButterKnife.bind(this)
setupViewPager()
updateUI(0)
}
Expand All @@ -75,7 +73,6 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator<CustomPageViewHolder>
.create(data)
}

@OnClick(R.id.btn_start)
fun onClick(view: View) {
MainActivity.start(this)
finish()
Expand All @@ -92,7 +89,7 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator<CustomPageViewHolder>
animatorSet.playTogether(translationAnim, alphaAnimator1)
animatorSet.start()

if (position == mViewPager!!.list.size - 1 && btn_start!!.visibility == View.GONE) {
if (position == mViewPager.list.size - 1 && btn_start!!.visibility == View.GONE) {
btn_start!!.visibility = View.VISIBLE
ObjectAnimator
.ofFloat(btn_start, "alpha", 0f, 1f)
Expand Down
Loading

0 comments on commit 936d6fe

Please sign in to comment.