comparison android/DWindows.kt @ 2675:a7868380098f

Android: LinearLayout does not allow null views, if null, create a Placeholder view. Pack the empty placeholder into the LinearLayout to accomplish the same effect. This allows us to center things with expandable placeholders.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 19 Oct 2021 11:01:16 +0000
parents e3a95940c18f
children a43cf048ff17
comparison
equal deleted inserted replaced
2674:dd0b29320a3d 2675:a7868380098f
42 import androidx.appcompat.app.AppCompatActivity 42 import androidx.appcompat.app.AppCompatActivity
43 import androidx.appcompat.widget.AppCompatEditText 43 import androidx.appcompat.widget.AppCompatEditText
44 import androidx.collection.SimpleArrayMap 44 import androidx.collection.SimpleArrayMap
45 import androidx.constraintlayout.widget.ConstraintLayout 45 import androidx.constraintlayout.widget.ConstraintLayout
46 import androidx.constraintlayout.widget.ConstraintSet 46 import androidx.constraintlayout.widget.ConstraintSet
47 import androidx.constraintlayout.widget.Placeholder
47 import androidx.core.app.NotificationCompat 48 import androidx.core.app.NotificationCompat
48 import androidx.core.app.NotificationManagerCompat 49 import androidx.core.app.NotificationManagerCompat
49 import androidx.core.content.res.ResourcesCompat 50 import androidx.core.content.res.ResourcesCompat
50 import androidx.core.view.MenuCompat 51 import androidx.core.view.MenuCompat
51 import androidx.recyclerview.widget.RecyclerView 52 import androidx.recyclerview.widget.RecyclerView
1580 return scrollBox 1581 return scrollBox
1581 } 1582 }
1582 1583
1583 fun boxPack( 1584 fun boxPack(
1584 boxview: View, 1585 boxview: View,
1585 item: View, 1586 packitem: View?,
1586 index: Int, 1587 index: Int,
1587 width: Int, 1588 width: Int,
1588 height: Int, 1589 height: Int,
1589 hsize: Int, 1590 hsize: Int,
1590 vsize: Int, 1591 vsize: Int,
1592 ) { 1593 ) {
1593 waitOnUiThread { 1594 waitOnUiThread {
1594 var w: Int = LinearLayout.LayoutParams.WRAP_CONTENT 1595 var w: Int = LinearLayout.LayoutParams.WRAP_CONTENT
1595 var h: Int = LinearLayout.LayoutParams.WRAP_CONTENT 1596 var h: Int = LinearLayout.LayoutParams.WRAP_CONTENT
1596 var box: LinearLayout? = null 1597 var box: LinearLayout? = null
1598 var item: View? = packitem
1599
1600 // We can't pack nothing, so create an empty placeholder to pack
1601 if(item == null) {
1602 item = Placeholder(this)
1603 item.emptyVisibility = View.VISIBLE
1604 }
1597 1605
1598 // Handle scrollboxes by pulling the LinearLayout 1606 // Handle scrollboxes by pulling the LinearLayout
1599 // out of the ScrollView to pack into 1607 // out of the ScrollView to pack into
1600 if (boxview is LinearLayout) { 1608 if (boxview is LinearLayout) {
1601 box = boxview 1609 box = boxview