Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- val menuLayout = ManageableMenu(tc,listOf(
- ManageableMenu.ManageableMenuItem("Item 1"),
- ManageableMenu.ManageableMenuItem("Item 2"),
- ManageableMenu.ManageableMenuItem("Item 3"),
- ManageableMenu.ManageableMenuItem("Item 4")
- ))
- menuLayout.listener = this
- val menuLayoutConstraint =menuLayout .layoutParams as ConstraintLayout.LayoutParams
- menuLayoutConstraint.topToBottom = actorName.id
- menuLayoutConstraint.startToStart = thisLayout.id
- menuLayoutConstraint.endToEnd = thisLayout.id
- thisLayout.addView(menuLayout)
- class ManageableMenu(context: Context, val items: List<ManageableMenuItem>): ConstraintLayout(context) {
- var textSize: Int = 17
- var textColor: Int = Color.WHITE
- var activeFragmentTitle: String = items[0].title
- var listener: ManageableMenuChangeListener? = null
- init {
- this.id = View.generateViewId()
- this.layoutParams =
- ConstraintLayout.LayoutParams(convertToDP(100, this.context), ConstraintLayout.LayoutParams.WRAP_CONTENT)
- val baseConstraint = ConstraintLayout.LayoutParams(
- ConstraintLayout.LayoutParams.WRAP_CONTENT,
- ConstraintLayout.LayoutParams.WRAP_CONTENT
- )
- this.setBackgroundColor(Color.BLACK)
- //Build Dividers
- val dividers: MutableList<TextView> = mutableListOf()
- if (items.size > 1) {
- repeat(items.size - 1) {
- val newView = TextView(this.context)
- newView.id = View.generateViewId()
- newView.text = "|"
- newView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize + 8.toFloat())
- newView.setTextColor(textColor)
- dividers.add(newView)
- }
- }
- val constraintSet = ConstraintSet()
- constraintSet.clone(this)
- val dividerIds: IntArray = IntArray(dividers.size)
- for ((index, divider) in dividers.withIndex()) {
- dividerIds.set(index, divider.id)
- }
- constraintSet.createHorizontalChainRtl(
- dividerIds[0],
- ConstraintSet.START,
- this.id,
- ConstraintSet.END,
- dividerIds,
- null,
- ConstraintSet.CHAIN_SPREAD
- )
- constraintSet.applyTo(this)
- for (divider in dividers) {
- this.addView(divider)
- }
- }
- data class ManageableMenuItem(val title: String) {
- var id: Int? = null
- }
- interface ManageableMenuChangeListener {
- fun onMenuItemChanged(var1: String)
- }
- }
- class ManageableMenu(context: Context, val items: List<ManageableMenuItem>): ConstraintLayout(context) {
- var textSize: Int = 17
- var textColor: Int = Color.WHITE
- var activeFragmentTitle: String = items[0].title
- var listener: ManageableMenuChangeListener? = null
- init {
- this.id = View.generateViewId()
- this.layoutParams =
- ConstraintLayout.LayoutParams(convertToDP(100, this.context), ConstraintLayout.LayoutParams.WRAP_CONTENT)
- val baseConstraint = ConstraintLayout.LayoutParams(
- ConstraintLayout.LayoutParams.WRAP_CONTENT,
- ConstraintLayout.LayoutParams.WRAP_CONTENT
- )
- this.setBackgroundColor(Color.BLACK)
- //Build Dividers
- val dividers: MutableList<TextView> = mutableListOf()
- if (items.size > 1) {
- repeat(items.size - 1) {
- val newView = TextView(this.context)
- newView.id = View.generateViewId()
- newView.text = "|"
- newView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize + 8.toFloat())
- newView.setTextColor(textColor)
- dividers.add(newView)
- }
- }
- for ((index, divider )in dividers.withIndex()) {
- val constraint = ConstraintLayout.LayoutParams(baseConstraint)
- constraint.topToTop = this.id
- constraint.bottomToBottom = this.id
- if (index == 0){
- constraint.leftToLeft = this.id
- constraint.rightToLeft = dividers[index+1].id
- } else if (index == dividers.lastIndex) {
- constraint.rightToRight = this.id
- constraint.leftToRight = dividers[index-1].id
- } else {
- constraint.rightToLeft = dividers[index+1].id
- constraint.leftToRight = dividers[index-1].id
- }
- divider.layoutParams = constraint
- this.addView(divider)
- }
- }
- data class ManageableMenuItem(val title: String) {
- var id: Int? = null
- }
- interface ManageableMenuChangeListener {
- fun onMenuItemChanged(var1: String)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement