目標(biāo):動態(tài)設(shè)置tab的大小
1.廢話不多說了沧竟,直接上代碼
2個工具類
object BottomNavigationViewHelper {
/**
* 設(shè)置所有圖片尺寸
*
* @param view BottomNavigationView
* @param width 寬
* @param height 高
*/
fun setAllImageSize(view: BottomNavigationView, width: Int, height: Int) {
val menuView = view.getChildAt(0) as BottomNavigationMenuView
try {
for (i in 0 until menuView.childCount) {
val item =
menuView.getChildAt(i) as BottomNavigationItemView
val imageView =
item.findViewById<ImageView>(R.id.icon)
imageView.layoutParams.width = width
imageView.layoutParams.height = height
}
} catch (e: Exception) {
e.printStackTrace()
}
}
/**
* 設(shè)置單個條目圖片尺寸
*
* @param position 條目位置
* @param view BottomNavigationView
* @param width 寬
* @param height 高
*/
fun setOneImageSize(
position: Int,
view: BottomNavigationView,
width: Int,
height: Int
) {
val menuView = view.getChildAt(0) as BottomNavigationMenuView
try {
for (i in 0 until menuView.childCount) {
if (i == position) {
val item =
menuView.getChildAt(i) as BottomNavigationItemView
val imageView =
item.findViewById<ImageView>(R.id.icon)
imageView.layoutParams.width = width
imageView.layoutParams.height = height
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
object ScreenUtils {
/**
* 根據(jù)手機的分辨率從 dp 的單位 轉(zhuǎn)成為 px(像素)
*/
fun dip2px(context: Context, dpValue: Float): Int {
val scale = context.resources.displayMetrics.density
return (dpValue * scale + 0.5f).toInt()
}
}
2.下面是使用
在MainActivity中:
companion object {
//選中時tab圖片尺寸大小
const val selectedSize = 29.0f
//未選中時tab圖片尺寸大小
const val unSelectedSize = 23.0f
}
設(shè)置一個圖標(biāo)的大小
BottomNavigationViewHelper.setOneImageSize(
0,
binding.navigation,
ScreenUtils.dip2px(this, selectedSize),
ScreenUtils.dip2px(this, selectedSize)
)
設(shè)置所有圖標(biāo)的大小
BottomNavigationViewHelper.setAllImageSize(
binding.navigation,
ScreenUtils.dip2px(this, unSelectedSize),
ScreenUtils.dip2px(this, unSelectedSize)
)
關(guān)于設(shè)置圖標(biāo)大小的時機,要看你的業(yè)務(wù)需求了缚忧,一般來說是activity創(chuàng)建的時候(setAllImageSize);
或者BottomNavigationView點擊事件 之后 (setOneImageSize)悟泵。根據(jù)你的業(yè)務(wù)來。
可以參考我的
微信截圖_20220901103049.png
微信截圖_20220901103024.png
喜歡的話可以點個贊~