xml
<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:horizontalSpacing="1dp"
android:verticalSpacing="1dp"
android:padding="1dp"
android:numColumns="5"
/>
item
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_marginTop="@dimen/dp_20"
android:layout_height="wrap_content">
<LinearLayout
android:background="#000000"
android:layout_marginTop="1dp"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<me.lan.frame.view.ScaleImageButton
android:id="@+id/iv_log8"
android:layout_width="@dimen/dp_110"
android:layout_height="@dimen/dp_116"
android:gravity="center"
android:scaleType="fitXY"
style="?android:attr/borderlessButtonStyle"
android:src="@drawable/wechat_logo" />
<TextView
android:id="@+id/tv_name8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="美式咖啡"
android:textColor="@color/white"
android:gravity="center"
android:textSize="@dimen/sp_36" />
</LinearLayout>
</LinearLayout>
class ShortcutsDialog {
class Builder(context: FragmentActivity) : BaseDialog.Builder<Builder>(context) {
private val gridView: GridView? by lazy { findViewById(R.id.gridView) }
var mShortcutsList: ArrayList<ShortcutsBean>? = ArrayList()
init {
setContentView(R.layout.shortcuts_dialog)
setAnimStyle(AnimAction.ANIM_BOTTOM)
setGravity(Gravity.CENTER)
gridView?.adapter = GridAdapter(context, mShortcutsList!!)
}
fun setData(): Builder = apply {
mShortcutsList?.add(
ShortcutsBean(
"清洁萃取头",
R.drawable.shortcuts_push)
)
mShortcutsList?.add(
ShortcutsBean(
"日清洗",
R.drawable.shortcuts_day_clean
)
)
mShortcutsList?.add(
ShortcutsBean(
"深度清洗",
R.drawable.shortcuts_depth_clean
)
)
mShortcutsList?.add(ShortcutsBean("", 0))
mShortcutsList?.add(ShortcutsBean("", 0))
mShortcutsList?.add(
ShortcutsBean(
"萃取头操作",
R.drawable.shortcuts_push
)
)
mShortcutsList?.add(
ShortcutsBean(
"磨豆机操作",
R.drawable.shortcuts_push
)
)
mShortcutsList?.add(
ShortcutsBean(
"快速自检测",
R.drawable.shortcuts_push
)
)
mShortcutsList?.add(ShortcutsBean("", 0))
mShortcutsList?.add(ShortcutsBean("", 0))
mShortcutsList?.add(
ShortcutsBean(
"粉碗设置",
R.drawable.shortcuts_push
)
)
mShortcutsList?.add(ShortcutsBean("", 0))
mShortcutsList?.add(ShortcutsBean("", 0))
mShortcutsList?.add(ShortcutsBean("", 0))
mShortcutsList?.add(ShortcutsBean("", 0))
}
}
class GridAdapter(var context: Context, var datas: ArrayList<ShortcutsBean>) : BaseAdapter() {
inner class MyHolder() {
lateinit var imageId: ImageView
lateinit var text: TextView
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
var view: View?
var myHolder: MyHolder?
if (convertView == null) {
myHolder = MyHolder()
view = LayoutInflater.from(context).inflate(R.layout.item_shortcuts, null)
myHolder.imageId = view.findViewById(R.id.iv_log8)
myHolder.text = view.findViewById(R.id.tv_name8)
view.tag = myHolder
} else {
view = convertView
myHolder = view.tag as MyHolder
}
myHolder.text.text = datas[position].name
myHolder.imageId.setImageResource(datas[position].logo)
return view!!
}
override fun getItem(position: Int): Any {
return datas[position]
}
override fun getItemId(position: Int): Long {
return position.toLong()
}
override fun getCount(): Int {
return datas.size
}
}
调用
fun showShortcutDialog(){
context?.let {
ShortcutsDialog.Builder(mActivity)
.setAnimStyle(AnimAction.ANIM_SCALE)
.setData()
.setOnClickListener(
R.id.iv_cancel,
object : BaseDialog.OnClickListener<ScaleTextButton> {
override fun onClick(dialog: BaseDialog?, view: ScaleTextButton) {
nav().navigateUp()
dialog?.dismiss()
}
})
.create()
.show()
}
}