Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. val menuLayout = ManageableMenu(tc,listOf(
  2. ManageableMenu.ManageableMenuItem("Item 1"),
  3. ManageableMenu.ManageableMenuItem("Item 2"),
  4. ManageableMenu.ManageableMenuItem("Item 3"),
  5. ManageableMenu.ManageableMenuItem("Item 4")
  6. ))
  7. menuLayout.listener = this
  8. val menuLayoutConstraint =menuLayout .layoutParams as ConstraintLayout.LayoutParams
  9. menuLayoutConstraint.topToBottom = actorName.id
  10. menuLayoutConstraint.startToStart = thisLayout.id
  11. menuLayoutConstraint.endToEnd = thisLayout.id
  12. thisLayout.addView(menuLayout)
  13.  
  14. class ManageableMenu(context: Context, val items: List<ManageableMenuItem>): ConstraintLayout(context) {
  15. var textSize: Int = 17
  16. var textColor: Int = Color.WHITE
  17. var activeFragmentTitle: String = items[0].title
  18. var listener: ManageableMenuChangeListener? = null
  19.  
  20.  
  21.  
  22. init {
  23. this.id = View.generateViewId()
  24. this.layoutParams =
  25. ConstraintLayout.LayoutParams(convertToDP(100, this.context), ConstraintLayout.LayoutParams.WRAP_CONTENT)
  26. val baseConstraint = ConstraintLayout.LayoutParams(
  27. ConstraintLayout.LayoutParams.WRAP_CONTENT,
  28. ConstraintLayout.LayoutParams.WRAP_CONTENT
  29. )
  30. this.setBackgroundColor(Color.BLACK)
  31.  
  32. //Build Dividers
  33. val dividers: MutableList<TextView> = mutableListOf()
  34.  
  35. if (items.size > 1) {
  36. repeat(items.size - 1) {
  37. val newView = TextView(this.context)
  38. newView.id = View.generateViewId()
  39. newView.text = "|"
  40. newView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize + 8.toFloat())
  41. newView.setTextColor(textColor)
  42. dividers.add(newView)
  43. }
  44. }
  45.  
  46. val constraintSet = ConstraintSet()
  47. constraintSet.clone(this)
  48.  
  49. val dividerIds: IntArray = IntArray(dividers.size)
  50.  
  51. for ((index, divider) in dividers.withIndex()) {
  52. dividerIds.set(index, divider.id)
  53. }
  54.  
  55. constraintSet.createHorizontalChainRtl(
  56. dividerIds[0],
  57. ConstraintSet.START,
  58. this.id,
  59. ConstraintSet.END,
  60. dividerIds,
  61. null,
  62. ConstraintSet.CHAIN_SPREAD
  63. )
  64. constraintSet.applyTo(this)
  65.  
  66. for (divider in dividers) {
  67. this.addView(divider)
  68. }
  69. }
  70.  
  71. data class ManageableMenuItem(val title: String) {
  72. var id: Int? = null
  73. }
  74.  
  75. interface ManageableMenuChangeListener {
  76. fun onMenuItemChanged(var1: String)
  77. }
  78. }
  79.  
  80. class ManageableMenu(context: Context, val items: List<ManageableMenuItem>): ConstraintLayout(context) {
  81. var textSize: Int = 17
  82. var textColor: Int = Color.WHITE
  83. var activeFragmentTitle: String = items[0].title
  84. var listener: ManageableMenuChangeListener? = null
  85.  
  86.  
  87.  
  88. init {
  89. this.id = View.generateViewId()
  90. this.layoutParams =
  91. ConstraintLayout.LayoutParams(convertToDP(100, this.context), ConstraintLayout.LayoutParams.WRAP_CONTENT)
  92. val baseConstraint = ConstraintLayout.LayoutParams(
  93. ConstraintLayout.LayoutParams.WRAP_CONTENT,
  94. ConstraintLayout.LayoutParams.WRAP_CONTENT
  95. )
  96. this.setBackgroundColor(Color.BLACK)
  97.  
  98. //Build Dividers
  99. val dividers: MutableList<TextView> = mutableListOf()
  100.  
  101. if (items.size > 1) {
  102. repeat(items.size - 1) {
  103. val newView = TextView(this.context)
  104. newView.id = View.generateViewId()
  105. newView.text = "|"
  106. newView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize + 8.toFloat())
  107. newView.setTextColor(textColor)
  108. dividers.add(newView)
  109. }
  110. }
  111. for ((index, divider )in dividers.withIndex()) {
  112. val constraint = ConstraintLayout.LayoutParams(baseConstraint)
  113. constraint.topToTop = this.id
  114. constraint.bottomToBottom = this.id
  115. if (index == 0){
  116. constraint.leftToLeft = this.id
  117. constraint.rightToLeft = dividers[index+1].id
  118. } else if (index == dividers.lastIndex) {
  119. constraint.rightToRight = this.id
  120. constraint.leftToRight = dividers[index-1].id
  121. } else {
  122. constraint.rightToLeft = dividers[index+1].id
  123. constraint.leftToRight = dividers[index-1].id
  124. }
  125.  
  126. divider.layoutParams = constraint
  127. this.addView(divider)
  128. }
  129. }
  130. data class ManageableMenuItem(val title: String) {
  131. var id: Int? = null
  132. }
  133.  
  134. interface ManageableMenuChangeListener {
  135. fun onMenuItemChanged(var1: String)
  136. }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement