Skip to content

Commit

Permalink
优化范例样式
Browse files Browse the repository at this point in the history
  • Loading branch information
shang_dong committed Sep 23, 2023
1 parent 15ac566 commit e9c2f50
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 11 deletions.
27 changes: 27 additions & 0 deletions app/src/main/java/com/zhangjian/samp/ColorUtils.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.zhangjian.samp

import android.graphics.Color
import java.util.Locale
import java.util.Random

/**
* Create by shang_dong on 2023/9/23
*/
fun getRandColor(): String {
var r: String
var g: String
var b: String
val random = Random()
r = Integer.toHexString(random.nextInt(256)).uppercase(Locale.getDefault())
g = Integer.toHexString(random.nextInt(256)).uppercase(Locale.getDefault())
b = Integer.toHexString(random.nextInt(256)).uppercase(Locale.getDefault())
r = if (r.length == 1) "0$r" else r
g = if (g.length == 1) "0$g" else g
b = if (b.length == 1) "0$b" else b
return "#$r$g$b"
}

fun getRandColorInt() : Int{
return Color.parseColor(getRandColor())
}

16 changes: 13 additions & 3 deletions app/src/main/java/com/zhangjian/samp/MenuListAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.zhangjian.samp

import android.app.Activity
import android.content.Intent
import android.graphics.drawable.Drawable
import android.view.ViewGroup
import android.view.ViewGroup.MarginLayoutParams
import android.widget.Button
Expand All @@ -11,11 +12,15 @@ import com.zhangjian.uikit.DisplayUtil
/**
* Created zhangjian on 2021/9/22(09:57) in project UiKit.
*/
class MenuListAdapter(private val buttonRouters: MutableList<ButtonRouter>) : RecyclerView.Adapter<ViewHolderImpl>() {
class MenuListAdapter(private val buttonRouters: MutableList<ButtonRouter>) :
RecyclerView.Adapter<ViewHolderImpl>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolderImpl {
val button = Button(parent.context)
val layoutParams = MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
val layoutParams = MarginLayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
layoutParams.topMargin = DisplayUtil.dip2px(parent.context, 15f)
button.layoutParams = layoutParams
button.isAllCaps = false
Expand All @@ -25,6 +30,7 @@ class MenuListAdapter(private val buttonRouters: MutableList<ButtonRouter>) : Re
override fun onBindViewHolder(holder: ViewHolderImpl, position: Int) {
val buttonRouter = buttonRouters[position]
holder.button.text = buttonRouter.text
buttonRouter.decorateBtn?.invoke(holder.button)
buttonRouter.targetActivityClass?.let { activityClass ->
holder.button.setOnClickListener {
val intent = Intent(it.context, activityClass)
Expand All @@ -38,4 +44,8 @@ class MenuListAdapter(private val buttonRouters: MutableList<ButtonRouter>) : Re

class ViewHolderImpl(val button: Button) : RecyclerView.ViewHolder(button)

class ButtonRouter(val text: String, val targetActivityClass: Class<out Activity>? = null)
class ButtonRouter(
val text: String,
val targetActivityClass: Class<out Activity>? = null,
val decorateBtn: ((Button) -> Unit)? = null
)
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
package com.zhangjian.samp.slidingblock

import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.Gravity
import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.zhangjian.samp.ButtonRouter
import com.zhangjian.samp.MenuListAdapter
import com.zhangjian.samp.R
import com.zhangjian.samp.getRandColorInt
import com.zhangjian.uikit.tab.SlidingBlockTabView

/**
Expand Down Expand Up @@ -39,11 +43,14 @@ class SlidingBlockActionActivity : FragmentActivity() {
buttonRouters.apply {
for (title in titles) {
val textBuilder = StringBuilder(title)
for (i in 0 until 80) {
textBuilder.append("\n$title")
for (i in 0 until 30) {
textBuilder.append("\n")
}
add(ButtonRouter(textBuilder.toString()))

add(ButtonRouter(textBuilder.toString()){
it.setBackgroundColor(getRandColorInt())
it.gravity = Gravity.CENTER
it.setTextColor(Color.WHITE)
})
}
}
layoutManager = linearLayoutManager
Expand All @@ -63,7 +70,7 @@ class SlidingBlockActionActivity : FragmentActivity() {
}

tabView.bindTabTitles(titles) {
linearLayoutManager.scrollToPosition(it)
linearLayoutManager.scrollToPositionWithOffset(it, 0)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class SlidingBlockTabActivity : FragmentActivity() {
val buttonRouters: MutableList<ButtonRouter> = mutableListOf()
buttonRouters.apply {
add(ButtonRouter("绑定ViewPage", SlidingBlockViewPagerActivity::class.java))
add(ButtonRouter("主动处理点击", SlidingBlockActionActivity::class.java))
add(ButtonRouter("锚点", SlidingBlockActionActivity::class.java))
}
val adapter = MenuListAdapter(buttonRouters)
val recycleView: RecyclerView = findViewById(R.id.rvList)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.zhangjian.samp.slidingblock

import android.graphics.Color
import android.os.Bundle
import android.view.Gravity
import android.view.View
Expand All @@ -9,6 +10,7 @@ import androidx.fragment.app.FragmentActivity
import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import com.zhangjian.samp.R
import com.zhangjian.samp.getRandColorInt
import com.zhangjian.uikit.tab.SlidingBlockTabView

/**
Expand Down Expand Up @@ -40,8 +42,12 @@ class SlidingBlockViewPagerActivity : FragmentActivity() {
view.text = it
view.gravity = Gravity.CENTER
val layoutParams =
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
view.layoutParams = layoutParams
view.setBackgroundColor(getRandColorInt())
view
}
for (title in titles) {
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/activity_longimage_preview.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginHorizontal="60dp"
app:layout_constraintDimensionRatio="3:5"
app:layout_constraintDimensionRatio="1:2"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_marginTop="12dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />

Expand Down

0 comments on commit e9c2f50

Please sign in to comment.