@crazyfox try this, not sure it is full ok
import ui
v = ui.View()
v.background_color = 'white'
v.frame = (0,0,400,500)
class MyDropDown(ui.View):
def __init__(self, items=[], *args, **kwargs):
ui.View.__init__(self, *args, **kwargs)
self.h = self.height
#self.border_width = 2
#self.border_color = 'red'
tf = ui.TextField(name='tf')
tf.enabled = False
tf.frame = (0,0,self.width-32,32)
tf.border_width= 1
tf.corner_radius = 5
self.add_subview(tf)
self.tf = tf
b = ui.Button()
b.frame = (tf.x+tf.width,0,32,32)
b.image = ui.Image.named('iob:arrow_down_b_32')
b.border_width = 1
b.corner_radius = 5
b.action = self.b_action
self.add_subview(b)
tv = ui.TableView()
tv.frame = (0,tf.height,tf.width,self.height-32)
tv.border_width = 1
tv.corner_radius = 5
tv.data_source = ui.ListDataSource(items=items)
tv.height = min(tv.height,32*len(items))
tv.delegate = self
tv.hidden = True
self.add_subview(tv)
self.tv = tv
def b_action(self,sender):
self.tv.hidden = False
self.height = self.h
self.bring_to_front()
def tableview_did_select(self,tableview, section, row):
# Called when a row was selected
data = tableview.data_source.items[row]
self.tf.text = data
tableview.hidden = True
self.height = 32
dd1 = MyDropDown(items=['10m','12m','15m','17m'],frame=(10,10,242,300))
v.add_subview(dd1)
dd2 = MyDropDown(items=['aaa','bbb','ccc'],frame=(10,50,242,300))
v.add_subview(dd2)
v.present('sheet')