Android开发-小知识点记录

193 阅读1分钟

通过代码向删除xml布局文件中的控件

var edit_layout:LinearLayout = binding.editLayout
//这个index是列表的下标,例如edit_layout内部有三个控件 删除第一个就removeViewAt(0),注意不要数组越界
edit_layout.removeViewAt(index)

通过代码向xml布局文件中新增控件

var userHeadImageGroup = binding.userHeadImage
var head:ImageView = ImageView(context)
head.setImageResource(R.drawable.ic_icons_filled_me)
head.layoutParams = ViewGroup.LayoutParams(dpToPx(context, 53f), dpToPx(context, 53f))
holder.userHeadImageGroup.addView(head)

px转pd&pd转px

在需要动态修改控件的宽高时就会用到px转pd的情况

例如修改 LinearLayout 的宽度。

edit_layout.layoutParams.width = dpToPx(context , 84F)
/**
 * 根据手机的分辨率从 dp(相对大小) 的单位 转成为 px(像素)
 */
fun dpToPx(context: Context, dpValue: Float): Int {
    // 获取屏幕密度
    val scale: Float = context.getResources().getDisplayMetrics().density
    // 结果+0.5是为了int取整时更接近
    return (dpValue * scale + 0.5f).toInt()
}

/**
 * 根据手机的分辨率从 px(像素) 的单位 转成为 dp(相对大小)
 */
fun pxToDp(context: Context, pxValue: Float): Int {
    val scale = context.resources.displayMetrics.density
    return (pxValue / scale + 0.5f).toInt()
}

隐藏导航条

MainActivity onCreate 方法里面

supportActionBar?.hide()