Mercurial > dwindows
changeset 2568:b536b7b21682
Android: Switch to using LinearLayout for Container row layout...
Would like to use ContraintLayout or RelativeLayout so we can stack text columns vertically...
However I couldn't get ConstraintLayout to work so switching for the moment.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 19 May 2021 23:22:51 +0000 |
parents | 19d82c1f135f |
children | 97b30df25fd1 |
files | android/DWindows.kt |
diffstat | 1 files changed, 11 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/android/DWindows.kt Wed May 19 20:37:23 2021 +0000 +++ b/android/DWindows.kt Wed May 19 23:22:51 2021 +0000 @@ -641,7 +641,7 @@ } override fun getView(position: Int, view: View?, parent: ViewGroup): View { - var rowView: ConstraintLayout? = view as ConstraintLayout? + var rowView: LinearLayout? = view as LinearLayout? var displayColumns = model.numberOfColumns() // In simple mode, limit the columns to 1 or 2 @@ -657,13 +657,10 @@ // If the view passed in is null we need to create the layout if(rowView == null) { - rowView = ConstraintLayout(context) - val set = ConstraintSet() - var lastID: Int = -1 - - // Initialize the constraint layout and set - rowView.id = View.generateViewId() - set.clone(rowView) + rowView = LinearLayout(context) + var lastView: View? = null + + rowView.orientation = LinearLayout.HORIZONTAL for(i in 0 until displayColumns) { val content = model.getRowAndColumn(position, i) @@ -672,42 +669,28 @@ if((model.getColumnType(i) and 1) != 0) { val imageview = ImageView(context) imageview.id = View.generateViewId() - imageview.layoutParams = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT) + imageview.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, + LinearLayout.LayoutParams.WRAP_CONTENT) if (content is Drawable) { imageview.setImageDrawable(content) } rowView.addView(imageview) - // Add to the set... - if(lastID == -1) { - set.connect(imageview.id, ConstraintSet.TOP, rowView.id, ConstraintSet.BOTTOM) - } else { - set.connect(lastID, ConstraintSet.START, imageview.id, ConstraintSet.END) - } - lastID = imageview.id + lastView = imageview } else { // Everything else id displayed as text val textview = TextView(context) textview.id = View.generateViewId() - textview.layoutParams = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT) + textview.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT) if (content is String) { textview.text = content } else if(content is Int) { textview.text = content.toString() } rowView.addView(textview) - // Add to the set... - if(lastID == -1) { - set.connect(textview.id, ConstraintSet.TOP, rowView.id, ConstraintSet.BOTTOM) - } else { - set.connect(lastID, ConstraintSet.START, textview.id, ConstraintSet.END) - } - lastID = textview.id + lastView = textview } } - - // Finally apply the layout - set.applyTo(rowView) - // TODO: Add code to optionally add other columns } else { // Otherwise we just need to update the existing layout